CHtmlViewで画像ファイルを開くとメモリリークします

[戻る]
ひろ 2009/08/04(火) 18:34:54
環境はVS.NET2003 + VC + MFC + IE7です。

CHtmlViewで画像ファイルを開いてそのまま閉じることを繰り返すと、メモリが増え続け
ていきます。

再現方法は以下になります。

・MDIで新しいプロジェクトを作り、ViewをCHtmlViewにする。

・CXxxView::OnInitialUpdateのNavigate2に渡しているURLを適当な画像ファイルに変更
する。

後はタスクマネージャで監視しながら、新規ファイルボタンを押しては閉じるを繰り返
します。

画像ファイルのサイズにもよるかもしれませんが、1、2MBずつメモリが増えていきま
す。

何か解放(後始末)する必要があるのでしょうか?

ご存知の方がいらっしゃいましたら、ご回答よろしくお願いします。

うみんちゅ 2009/08/05(水) 12:24:06
VISTA+IE8+VC2005
で同じことを試してみましたが再現しませんでした。
最初の数回は少しずつ(数KBずつくらい)使用メモリが増えていきますが
途中で止まります。

http://support.microsoft.com/kb/241750/ja
こちらが参考になるかもしれません。

ひろ 2009/08/05(水) 14:15:36
うみんちゅ様、レスありがとうございます。

> VISTA+IE8+VC2005
> で同じことを試してみましたが再現しませんでした。

ご確認ありがとうございます。

> http://support.microsoft.com/kb/241750/ja
> こちらが参考になるかもしれません。

これはVC6の話ですので、違うと考えています。

XP + IE7 + VC2008では起きなかったので、
VC2003とVC2008のCHtmlView関連の実装が記述されている
afxhtml.hとviewhtml.cppの違いを比べてみたのですが、
解放漏れに繋がりそうな違いは無さそうでした。

VC2003では、画像だけではなく、
通常のページを開いたときも増え続けていくようです。

akey 2009/08/06(木) 14:00:53
この辺りかな?

http://support.microsoft.com/kb/943510/ja
http://support.microsoft.com/kb/319740/ja

ひろ 2009/08/07(金) 21:56:24
[[解決]]
akey様、レスありがとうございます。

どちらもアップデートして試してみましたが、効果はありませんでした。

VC2005以上を使用すると起こりませんので、それを使用することにします。

ありがとうございました。

古いスレッドには追加発言できません。