C++ D3D11_创建_设备_调试调试标志不';行不通

C++ D3D11_创建_设备_调试调试标志不';行不通,c++,debugging,directx,direct3d,C++,Debugging,Directx,Direct3d,下午好。在我的项目中,我创建了一个带有D3D11_CREATE_device_DEBUG标志的设备,但它仍然不显示错误信息。 我得到错误0x80070057,但调试标志什么也不显示,好像我还没有初始化它 D3D11CreateDevice(nullptr, DriverTypes[DriverTypeIndex], nullptr, D3D11_CREATE_DEVICE_DEBUG, FeatureLevels, NumFeatureLevels, D3D11_SDK_

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

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

根据
D3D11CreateDevice
函数的文档,要使用
D3D11\u CREATE\u DEVICE\u DEBUG
标志,必须安装D3D11*SDKLayers.dll。它可以通过Windows SDK获得。

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

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

而不仅仅是任何调试器。如果您的应用程序有用.NET编写的组件,则visual studio有两个不同的调试器:托管调试器和本机调试器。托管调试器不侦听这些
OutputDebugString
事件,您必须在连接本机调试器的情况下运行。如果您的启动项目是.NET,请右键单击启动项目的“调试”选项卡,选中“启用本机代码调试”


另外,我想知道为什么要对驱动程序类型使用数组?在几乎100%的情况下,唯一可以传递的合理值是我安装的
D3D\u驱动程序\u类型\u硬件。SDK 10.0.194041.1。我还有DirectXsdk@user14487311你在使用什么Windows操作系统?查看Chuck Walbourn的博客:还有官方文件:。如果您在Windows 10上运行,请确保安装了“图形工具”可选功能:仔细阅读所有这些内容,解决方案可能位于其中一个链接中。