问题描述
下午好。在我的项目中,我创建了一个带有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