我应该为DirectX 11使用什么SDK?

时间:2014-06-30 14:59:43

标签: c++ visual-studio winapi windows-7 directx

我对使用最新版本的DirectX SDK所需要的内容非常困惑。

有DirectX SDK(2010年6月),显然已弃用,并且有适用于Windows 8.1的Windows SDK。

令人困惑的是,我无法弄清楚Windows SDK for 8.1是否可以使用Windows 7和Visual Studio 2013 for Desktop,或者我是否必须使用DirectX SDK(2010年6月)与Windows 7和Visual Studio 2013 for Desktop。

此外,如果我使用Windows SDK for 8.1,我如何将其包含在我的Visual Studio项目中。有什么帮助吗?

2 个答案:

答案 0 :(得分:4)

从7.0版开始,DirectX SDK已经进入Windows SDK。除非您需要某些不推荐使用的功能,例如DXUT,特别是运行时着色器编译器,否则只需运行Windows SDK即可。

但是,如果您想使用DirectX SDK的弃用功能,则需要包含两个 SDK,Windows SDK设置为优先于DX SDK。如果您同时包含两者并查看重新定义警告,那么您将以错误的顺序包含它们。

答案 1 :(得分:1)

如果您拥有适用于Windows桌面的Visual Studio 2013 Express(或VS 2013 Pro或更高版本),则您拥有Windows 8.1 SDK,并且默认情况下将其用于任何C ++项目。支持“低级别”'在Windows 8.0,Windows 7和/或Windows Vista等系统中,需要设置_WIN32_WINNT预处理程序符号appropriately(对于Windows 7或更高版本,_WIN32_WINNT = 0x0601)。您无需做任何特别的事情,您可以在所有这些平台上使用DirectX 11.0,DirectXMath,XInput 9.1.0等,而无需使用传统的DirectX SDK。 {8. 3}}(D3DCompile#47)DLL在Windows 8.x SDK中可用,只是复制到Win32桌面应用程序的应用程序文件夹中,尽管在Windows 8.1上它也已经是操作系统的一部分。

HLSL compiler

Where is the DirectX SDK (2013 Edition)?

理想情况下,您可以避免使用D3DX11,并使用Windows Vista或更高版本中支持Win32桌面应用程序的许多Where is the DirectX SDK?中的任何一种。

您当然可以将旧版DirectX SDK与Windows 8.x SDK一起使用(遗憾的是,您必须在Windows Vista / Windows 7上使用alternatives; XAudio 2.8是Windows 8.x的一部分,但您需要记住,include / lib路径顺序是颠倒,因为DirectX SDK中的标题现在比Windows 8.x SDK中的标题旧。这在XAudio 2.7中有所涉及。请记住,如果您使用旧版DirectX SDK组件,如D3DX,XAudio 2.7,XInput 1.3,XACT,D3DCompiler#43等,那么您还需要依赖传统的DirectSetup部署。在这种情况下,建议您使用REDIST的MSDN而不是旧版DirectX SDK中提供的版本。

BTW,如果您尝试使用" v120_xp"来定位Windows XP平台工具集,您实际上使用的是Windows 7.1 SDK而不是Windows 8.x SDK,因为Windows 8.x SDK不支持Windows XP。有关此方案的许多警告,请参阅此refreshed version,或者保存您的理智并让Windows XP消失:)