掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CInternetSessionでFTP接続するには? (ID:71278)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在、CInternetSessionを使用して、FTP接続を行おうとしているのですが、接続に失敗した際に、メモリリークが発生してしまい、困っています。 ソースは下記の通りです。開発環境はVS2008 MFCです。 【CHoge.h】 // メンバ変数 CInternetSession* m_pInternet; CFtpConnection* m_pFtp; 【CHoge.cpp】 //コンストラクタでNULLに初期化 m_pInternet = NULL; m_pFtp = NULL // 接続処理 void CHoge::OnBnClickedBtnConnect() { try { m_pInternet = new CInternetSession; m_pFtp = m_pInternet->GetFtpConnection ( "Server", "User", "Pass", INTERNET_INVALID_PORT_NUMBER, TRUE ); } catch (...) { if (m_pFtp) { m_pFtp->Close(); delete m_pFtp; m_pFtp = NULL; } if (m_pInternet) { m_pInternet->Close(); delete m_pInternet; m_pInternet = NULL; } } } 現状は下記のような状態です。 ①m_pInternet->GetFtpConnectionでFTP接続開始 ②接続が存在しないため、例外が発生 ③m_pFtpはNULLで初期化された状態なので、解放処理は無し。 ④m_pInternetの解放処理を実行 ⑤APL終了(×ボタンで手動で閉じる) ⑥memory leaks!(GetFtpConnection内で確保したメモリがリークしている?) 以上、宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.