ReportLiveDeviceObjects向何处报告
本文关键字:报告 何处 ReportLiveDeviceObjects | 更新日期: 2023-09-27 18:29:41
我不确定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
(而非ID3D11Device::
)向Visual Studio输出窗口报告。
但是,要获得此报告,您必须具有使用D3D11_CREATE_DEVICE_DEBUG
标志创建的ID3D11Device
。(默认情况下会有短报告)
若要获得详细的报告,必须具有从当前设备查询的有效ID3D11Debug
对象。像这样:
m_pDevice->QueryInterface(__uuidof(ID3D11Debug), (void**)(&m_pD3D11Debug));
然后用D3D11_RLDO_DETAIL
调用ID3D11Debug::ReportLiveDeviceObjects()
;
如果你没有看到任何警告,那么,很可能,你所有的COM都被正确释放了。尝试创建自定义的临时泄漏,以进行检查。
在我看来,这份报告几乎毫无用处。有很多假阳性警告。
只需将COM对象封装在某个智能COM指针类中,就可以确定它们将被正确释放。