D3D11Device::ReportLiveDeviceObjects の仕組みがよくわかりません。
これを呼び出すと、出力またはコンソールに何も表示されません。
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476370(v=vs.85).aspx
D3D11Device::ReportLiveDeviceObjects の仕組みがよくわかりません。
これを呼び出すと、出力またはコンソールに何も表示されません。
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476370(v=vs.85).aspx
C# から使用しているかどうかは不明であるため、http://sharpdx.org/forum/4-general/1774-で説明されているように、プロジェクト設定で「ネイティブ コードのデバッグを有効にする」をオンにする必要があります。 how-to-debug-a-sharpdxexception#1774
ID3D11Debug::ReportLiveDeviceObjects
(not ID3D11Device::
) Visual Studio の出力ウィンドウにレポートします。
ただし、このレポートを作成するには、フラグID3D11Device
付きで作成されたが必要です。D3D11_CREATE_DEVICE_DEBUG
(デフォルトで短いレポートがあります)
ID3D11Debug
詳細なレポートを取得するには、現在のデバイスからクエリされた有効なオブジェクトが必要です。このような:
m_pDevice->QueryInterface(__uuidof(ID3D11Debug), (void**)(&m_pD3D11Debug));
ID3D11Debug::ReportLiveDeviceObjects()
次に、D3D11_RLDO_DETAIL
;で呼び出すだけです。
警告が表示されない場合は、おそらくすべての COM が正しくリリースされています。確実に確認するために、カスタムの一時的なリークを作成してみてください。
私の意見では、そのレポートはほとんど役に立ちません。誤検知の警告がたくさんあります。
COM オブジェクトをスマートな COM ポインタ クラスにカプセル化するだけで、それらが正しく解放されることを確認できます。