4

当我打开 DirectX 控制面板并打开 Direct3D 9 选项卡并设置“使用 Direct3D 9 的调试版本”并点击“确定”或“应用”时,没有错误。如果我再次打开控制面板,它会回到“使用 Direct3D 9 的零售版”。当我尝试调试我的应用程序时,我没有从 Direct3D 获得任何输出。

几个月前我最后一次这样做时,一切正常,我得到了调试输出。

以管理员身份运行控制面板似乎没有什么区别,这里提到的注册表项http://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/设置为一个.

我还能尝试什么?

4

3 回答 3

5

同样的事情发生在我身上。看起来 TrustedInstaller 获得了某些注册表项的所有权(包括 dxcpl 修改的 HKLM/SOFTWARE/Microsoft/Direct3D)。

在这里找到了解决方案。您只需要更改该 regkey 的所有权。

于 2013-12-31T23:26:11.180 回答
1

我已经看到了这种情况,并收集了一些最佳实践来尝试让这个东西在线工作 - 你可以试试

1.) DirectX 中有一个用于 x86 和 x64 应用程序的单独控制面板,SDK 附带有 DirectX 控制面板,您可以在那里设置使用 d3d 调试运行时和详细级别。还有一个用于着色器调试和内存检查的选项。

2.)链接反对d3dx9d.lib而不是d3dx9.lib

3.)尝试添加#pragma comment(lib, "d3dx9d")

4.) 使用#define D3D_DEBUG_INFO,但在包含 d3d9 标头之前使用它。

5.) 在属性窗口中检查使用 Direct3D 9 的调试版本,如 http://i.stack.imgur.com/WoZAH.png

6.) 使用DebugView 之类的工具

资料来源: http ://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/ https://gamedev.stackexchange.com/questions/24541/cant-get-debug-spew- for-direct3d9

于 2013-08-25T11:43:10.700 回答
0

对我来说,解决方案是这样的:

“查看密钥的权限可以不点击“高级”按钮吗?然后单击“所有者”选项卡在底部框内打勾,然后突出显示管理员组,然后选中“获取所有权”。通过:http ://www.tomshardware.co.uk/forum/238556-45-cannot-modify-delete-change-permissions-registry

这样做之后,我能够让我的用户完全访问 HKLM/SOFTWARE/Microsoft/Direct3D,然后 ctrlpanel 保留其设置。

于 2014-04-08T20:34:11.853 回答