こんにちは、植田です。
Post by PAPAダイアログボックス(DoModalを使用)を開いて閉じる
を繰り返していると、タスクマネージャに表示される
メモリ使用量がだんだん増えていきます。
メモリーリークを起しているようです。
まず、現象を再現可能な最低限のコードと、メモリ使用量の
具体的な増加量を示していただかないと適切なアドバイスは
できませんよ。
ところで、タスクマネージャの「メモリ使用量」を以ってして
メモリリークであると断じるのは早計かもしれません。
これが示すのは「ワーキングセット」と呼ばれる、物理メモリの
割り当て量であって、コミットされた仮想メモリの総バイト数を
示すわけではありません。
この値は状況によって大きく変動します。
# たとえば、アプリケーションのウィンドウを最小化すると、
# がくっと小さくなります。
また、仮想メモリを解放しても、コミットが解除されるまでには
タイムラグがあるかもしれません。
WindowsやMFCを疑う前に、ご自身のコードをよく確認して
みましょう。MFCであれば、プログラム終了時に、開放されて
いないオブジェクトをIDEの出力ウィンドウにダンプするはず
なので、まずはそこからチェックしてみてください。
詳しいことは下記ドキュメントをご覧あれ。
MFC におけるメモリ リークの検出
http://msdn2.microsoft.com/ja-jp/library/c99kz476(VS.80).aspx
(VC8のドキュメントですが基本的なことはVC6でも同じです)
メモリ リークの検出と特定
http://msdn.microsoft.com/library/ja/jpdnvc60/htm/MemLeaks.asp
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
mailto:***@usdesign.jp