在Windows 10上使用带有VS2013的D3D11调试层

Chr*_*oph 23 c++ debugging direct3d visual-studio-2013 windows-10

在我的D3D 11项目中,我总是添加

#if (defined(DEBUG) || defined(_DEBUG))
deviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif /* (defined(DEBUG) || defined(_DEBUG)) */
Run Code Online (Sandbox Code Playgroud)

到设备创建标志以启用调试输出.自从我升级到Windows 10后,这不再起作用了.设备创建失败,输出如下:

D3D11CreateDevice:指定了标志(0x2),它需要适用于Windows 10的D3D11 SDK图层,但它们不在系统中.必须删除这些标志,或者必须安装Windows 10 SDK.标志包括:D3D11_CREATE_DEVICE_DEBUG

但是,我无法使用Windows 10 SDK,也无法将项目从VS2013升级到VS 2015 atm.有没有办法解决这个问题,即我可以在Windows 10上使用VS2013启用D3D11调试层吗?

Chu*_*urn 46

调试消息有点误导.对于Windows 10,Windows SDK不再安装Direct3D调试层.相反,您需要启用名为"图形工具"的Windows可选功能,其中包括调试层.在Windows 10上安装VS 2015和Windows 10 SDK也应该自动启用此功能,但您可以直接执行此功能.

(a)设置面板 - >系统 - >应用程序和功能 - >管理可选功能 - >添加功能 - >选择"图形工具"

(b)从管理员命令行提示符:

Dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0
Run Code Online (Sandbox Code Playgroud)

这篇文章.

请注意,从Windows 10(10240)升级到2015年11月更新(10586)时,可能需要重新启用"图形工具"可选功能.