« 体調不良 | メイン | 水疱瘡は怖い »

2005年06月11日

WinShotのメモリリーク

今回、WinShotのメモリリークを修正したのですが、原因はアイコンを動的に作
成する際に使用していた「CreateIconFromResource」APIでした。どうも上記API
で作成したアイコンは「DestoroyIcon」APIで解放されないみたいなんです。解
放する手段が無いというのもおかしいので、別の方法で解放する必要があるのか
もしれませんが見つけられませんでした。

結果として「CreateIconFromResourceEx」APIを使用することによりメモリリー
クは解決したのですが、MSDNを見ていてもその様な記述は見つからず不思議な気
持ちです。

詳細をご存じの方、教えてくださいm(__)m

投稿者 woodybells : 2005年06月11日 18:36

トラックバック

このエントリーのトラックバックURL:
http://sv59.xserver.jp/~woodybells/woodybells.com/mt/mt-tb.cgi/28

コメント

MSDN(英語)にはこう書かれています。
>The CreateIconFromResource function calls CreateIconFromResourceEx passing LR_DEFAULTSIZE|LR_SHARED as flags.
LR_SHAREDが指定されるため、ハンドルは放置するのが正しいかもしれません。

投稿者 通りすがり : 2005年06月15日 00:17

LR_SHAREDについては読んではいたのですが、正直理解しきれない状態です。HICONを使い回しすると言うことは2個以上のアイコンを作りたいときはどうするのだろう?等、頭で考えていると疑問ばかり浮かんできます。

実際にいろいろやってみるのが早いと思いますので時間のあるときにテストしてみたいと思います。

コメント有り難うございました。

投稿者 woodybells : 2005年06月15日 23:23

数年来のWinShotユーザーです。マニュアルを書くのが仕事なので、このソフトには本当にお世話になっています。使いやすいソフトをありがとうございます。

投稿者 kunio : 2005年06月20日 15:41

> kunioさん

コメント有り難うございます。
私が言うのもなんですが、マニュアル作成には最適だと思います。

末永くご愛用いただけるよう精進してまいりますm(__)m

投稿者 woodybells : 2005年06月22日 23:54

コメントしてください




保存しますか?