gpt4 book ai didi

c++ - DirectX 10 资源泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:23 25 4
gpt4 key购买 nike

在我的 DirectX 应用程序结束时,我得到“Direct3D 设备具有非零引用计数,这意味着某些对象未被释放。”。应用很大,又不是我写的,我该如何去调试哪些资源没有被释放?

最佳答案

第一步是使用 DirectX 调试 DLL,via the DirectX Control Panel . (IIRC,这些是安装DirectX SDK时的可选项目,所以你可能需要安装它们。)

当您下次运行您的应用程序时,DirectX 应该会为您提供有关泄漏内容的更多信息。具体来说,您需要查找如下一行:

D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0x1c17 to debug
allocation id ^^^^^^

或者,像这样:

Direct3D9: (WARN) :Memory Address: 00385580 lAllocID=1 dwSize=000047f8, (pid=00000474)
allocation id ^

获得分配 ID 后,您可以通过在 DirectX 控制面板中设置 Break on AllocID 设置(或通过设置注册表项)告诉 DirectX 在程序中发生分配时中断上面提到过)。

然后,检查调用堆栈以查看涉及哪些 DirectX 调用。

关于c++ - DirectX 10 资源泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3042406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com