掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VS2008でメモリーリークの警告を出すには (ID:70626)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
自己解決です。 結論としてはプログラム終了時に無効なコントロールにアクセスしていた ことが要因となっていました。 ・CDockablePane派生クラス(Cxxx)にCDialog派生(Create作成:Cyyy)の メンバ変数を持つ。 ・Cyyyにツリーコントロール(Czzz)を貼り付ける。 上記プログラムの CyyyのデストラクタでCzzzのDeleteAllItems()を呼んでいたことが 今回の現象の原因となっていました。 Cyyyのデストラクタがコールされた時点でCzzzはウィンドウが無効になって いるのでAssertやアクセスバイオレーションが発生するのであれば納得できるのですが… 実際はDeleteAllItems()でブレークするとF10を押した直後にVCのデバッグ実行が終了し、終了コード3となります。次行は実行しないため 他のデストラクタも呼ばれません。 尚、同じように無効なコントロールに対するアクセスを プログラム起動中に行うとAssertが発生します。 VCの仕様なのかなぁ???
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.