当我打开DirectX控制面板并打开Direct3D 9选项卡并设置“使用Direct3D 9的调试版本”并点击“确定”或“应用”时,没有错误。如果我再次打开控制面板,则返回“使用Direct3D 9的零售版”。当我尝试调试我的应用程序时,我没有从Direct3D获得任何输出。
几个月前,当我上次这样做时,一切正常,我得到了调试输出。
以管理员身份运行控制面板似乎没有什么区别,此处提到的注册表项http://www.gamedev.net/topic/514529-cant-use-debug-version-of-direct3d/设置为1。
我还能尝试什么?
答案 0 :(得分:4)
同样的事发生在我身上。看起来TrustedInstaller拥有一些注册表项(包括dxcpl修改的HKLM / SOFTWARE / Microsoft / Direct3D)。
找到解决方案here。您只需要更改该regkey的所有权。
答案 1 :(得分: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
答案 2 :(得分:0)
对我来说解决方案就是:
“查看密钥的权限是否可以点击”高级“按钮?然后单击”所有者“选项卡将检查放在底部框中,然后突出显示管理员组,然后选中”获取所有权“。 通过:http://www.tomshardware.co.uk/forum/238556-45-cannot-modify-delete-change-permissions-registry
执行此操作后,我能够为我的用户提供对HKLM / SOFTWARE / Microsoft / Direct3D的完全访问权限,然后ctrlpanel保留其设置。