0

在此处输入图像描述

如您所见,regedit 中没有 Direct3D 文件。我需要在我的代码中找到内存泄漏。我已经使用 _CrtSetBreakAlloc 清除所有内存泄漏!

D3DX:检测到内存泄漏:未释放 60 个分配(4603 字节) D3DX:设置 HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0x736 进行调试

这是我在调试 D3DX 时在 Visual Studio 中收到的消息。

  1. 如何在我的 regedit 中找到我的 Direct3D 文件?
  2. 如果不可能,还有其他方法可以使用 D3DXBreakOnAllocId 吗?
4

1 回答 1

1

您没有指定您使用的 Windows 版本,但重要的是要注意Windows 8.0、Windows 8.1 或 Windows 10不支持DirectX 9(即 Direct3D 的调试设备)的 DirectX Developer Runtime。

您仍然可以手动创建旧 D3DX9 实用程序库的调试版本使用的特定注册表项。

  • 在树视图中选择 HKLM\SOFTWARE\Microsoft

  • 选择编辑\新建\键...

  • 将名称设置为“Direct3D”

  • 选择编辑 \ 新建 \ DWORD(32 位)值...

  • 将名称设置为“D3DXBreakOnAllocId”

  • 将值设置为您的目标,例如“736”(选中十六进制单选按钮)

请注意,DirectX SDK、Direct3D 9、D3DX9/D3DX10/D3DX11 库和“DirectX 最终用户运行时”(即 DXSETUP.EXE/DXWEBSETUP.EXE/DirectSetup API)都已弃用。请参阅DirectX SDK(2021 版)在哪里?.

于 2021-02-04T22:33:36.363 回答