D3D11_CREATE_DEVICE_DEBUG调试标志不起作用

问题描述

下午好。在我的项目中,我创建了一个带有D3D11_CREATE_DEVICE_DEBUG标志的设备,但是它仍然不显示错误信息。 我收到错误0x80070057,但是调试标志什么也没有显示,好像我还没有初始化它。

D3D11CreateDevice(nullptr,DriverTypes[DriverTypeIndex],nullptr,D3D11_CREATE_DEVICE_DEBUG,FeatureLevels,NumFeatureLevels,D3D11_SDK_VERSION,&pD3DDev,&FeatureLevel,&pCtx);

解决方法

根据D3D11CreateDevice函数的文档,为了使用D3D11_CREATE_DEVICE_DEBUG标志,必须安装D3D11 * SDKLayers.dll。可以通过Windows SDK获得。

,

您必须具有Windows SDK。如果您可以编译代码,则很可能拥有它。

要查看D3D调试运行时的调试输出,必须在连接了调试器的情况下运行应用。

而不仅仅是任何调试器。如果您的应用程序具有用.NET编写的组件,则Visual Studio具有2个不同的调试器,分别是托管的和本机的。托管调试器不会监听这些OutputDebugString事件,您必须在连接了本地调试器的情况下运行。如果您的启动项目是.NET,请右键单击启动项目的“调试”选项卡,然后选中“启用本机代码调试”。

P.S。我想知道为什么要对驱动程序类型使用数组?在几乎100%的情况下,唯一可以通过的值是D3D_DRIVER_TYPE_HARDWARE

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...