安装完Win10调试程序突然在这个地方报错:
#if (defined(DEBUG) || defined(_DEBUG)) deviceFlags |= D3D11_CREATE_DEVICE_DEBUG; #endif /* (defined(DEBUG) || defined(_DEBUG)) */
错误信息如下:
D3D11CreateDevice: Flags (0x2) were specified which require the D3D11 SDK Layers for Windows 10, but they are not present on the system. These flags must be removed, or the Windows 10 SDK must be installed. Flags include: D3D11_CREATE_DEVICE_DEBUG
问题分析:
以前在win7 和Win8 下安装完DirectX 的SDK就不错了,在Win10 下则装了DirectX也报错(Win8 的SDK 和Win10 的SDK都装了)
后来在MSDN的博客中发现:
Windows 10 optional feature: Graphics Tools
There are several scenarios where you need only minimal graphics tools on the target system. For example:
- Install the D3D SDK Layers so that your application can create a D3D Debug device
- Use DXCAP command line tool to capture and playback D3D graphics log file
- Scripting of API traces or doing regression testing on a lab machine
In these cases, all you need to install is the Windows 10 optional feature of “Graphics Tools”.
To install the Graphics Tools optional feature, go to the Settings panel, under System, Apps & features, Manage optional Features, Add a feature, and then look for “Graphics Tools”
解决方案:
方法1
Settings panel -> System -> Apps & features -> Manage optional Features -> Add a feature -> Select "Graphics Tools"
方法2
用管理员身份打开命令行工具(cmd),执行如下命令:
Dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0
参考