0

我不确定 D3D11Device::ReportLiveDeviceObjects 是如何工作的?

当我调用它时,我在输出或控制台中没有看到任何内容。

http://msdn.microsoft.com/en-us/library/windows/desktop/ff476370(v=vs.85).aspx

4

2 回答 2

1

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 指针类中,您就可以确定它们将被正确释放。

于 2013-08-30T09:34:34.693 回答
1

目前尚不清楚您是否从 C# 中使用它,因此,如果您必须在项目设置中选中“启用本机代码调试”,请参阅http://sharpdx.org/forum/4-general/1774-如何调试-a-sharpdxexception#1774

于 2013-08-30T23:38:47.897 回答