我不确定 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
ID3D11Debug::ReportLiveDeviceObjects
(不是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 指针类中,您就可以确定它们将被正确释放。
目前尚不清楚您是否从 C# 中使用它,因此,如果您必须在项目设置中选中“启用本机代码调试”,请参阅http://sharpdx.org/forum/4-general/1774-如何调试-a-sharpdxexception#1774