2009-08-12 23 views
1

数時間を実行した後、アプリケーションは新しいフォントオブジェクトの作成に失敗します。Win32でリソースリークを検出するにはどうすればよいですか?

CreateFontIndirect()はNULLを返します。

私はメモリリークを見つける方法を知っています(つまり、並列インスペクタまたは別のプロファイラを使用しています - そのほとんどはリーク検出を含みます)。しかし、どのように私はWin32でressourceリークを見つけることができますか?

+0

まず、GDIハンドルリークがあることを確認します。タスクマネージャのGDIハンドル列を確認します。 – Michael

答えて

6

GDI Viewのコピーを手に入れてください - この便利なツールは、フォント名やサイズなどの詳細を含めて、アプリケーションで使用されているすべてのGDIオブジェクトを表示できます。これは以前は非常に便利でした。

Win32アプリケーションの場合は、WTLフレームワークを参照することをお勧めします。これは、GDIオブジェクトを軽量なC++クラスでラップし、オブジェクトの削除を処理します。

+0

はい、これは非常に良いツールのようです。驚くほど小さな。わずか50kBのジップ。ありがとう。 –

+0

あなたはまた、クリーナーを使用することができます。それはパワーツールです! –

3

BoundsCheckerがある場合、メモリリークに加えてリソースリークも追跡されます。

+0

チップをありがとう - 私はBoundsCheckerを持っていたかつてこれまで最高のツールでした。 CompuwareはBoundsCheckerを買収して以来、最初のライセンス(約15年前)以来、品質は継続的に低下しました。開始直後に終了し、最近x64システム全体が停止しました。 Compuware DevPartner(BoundsCheckerの後継者)は、まだ64ビットソフトウェアを分析することができません。 –

関連する問題