※ ChatGPTを利用し、要約された質問です(原文:Visual Studio2008でのメモリリーク)
Visual Studio2008でのメモリリーク
このQ&Aのポイント
Visual Studio2008でプログラムを組んでいる際に、終了時にメモリリークが発生する問題が発生しました。
エラーメッセージには『DXUTCleanup3DEnvironment hr=DXUTERR_NONZEROREFCOUNT』という文言が表示され、Direct3Dデバイスがゼロ以外のリファレンスカウントを持っているために一部のオブジェクトが解放されない問題が指摘されています。
具体的な原因や解決方法は不明ですが、今までのメモリリークとは異なるエラーメッセージが表示されており、原因の特定が難しい状況です。
Visual Studio2008でのメモリリーク
プログラムを組んでいて、終了すると
以下のようなメモリリークがでました。
desktop\emptyproject ?d?a?E?μ\dxut\core\dxut.cpp(3385): DXUTCleanup3DEnvironment hr=DXUTERR_NONZEROREFCOUNT (0x80040904)
D3DX: MEMORY LEAKS DETECTED: 363 allocations unfreed (322368 bytes)
D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0x1a35 to debug
MSDNでは
DXUTERR_NONZEROREFCOUNT
Direct3D デバイスがゼロ以外のリファレンス カウントを持っているため、一部のオブジェクトが解放されませんでした。
とありますが、この意味もよく分かりません。
今までのメモリリークは
Dumping objects ->
{343} normal block at 0x0207F288, 2240 bytes long.
のように割り当てられたブロックが分かりましたが、
上の様なメモリリークは初めてで、
文からメモリリークの原因を検出することができないでいます。
何故、下ではなく上の様なエラー文になるんでしょうか?
お礼
無事、メモリリークが取れました。 ありがとうございます。(^_^)/
補足
なるほど、そうなんですか。 頑張ってRelease漏れを探します。