Visual Studio 2015 包含比旧版 DirectX SDK 中的标头更新的 Windows 8.1 SDK。Windows 8.1 SDK 包含所有 DirectX 头文件和库,但不包含现已弃用的 D3DX(D3DX9、D3DX10、D3DX11)实用程序库,这就是它“缺失”的原因。
D3DX9、D3DX10 和 D3DX11 仅在旧版 DirectX SDK 中可用。对于 VS 2010,您应该使用的 VC++ 目录设置如下,用于 Win32 (x86) 设置:
<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>
这对于 x64 本机:
<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x64;$(LibraryPath)</LibraryPath>
对于 VS 2012 或更高版本,您必须将它们反转,因为 Windows 8 SDK 中的大多数标头替换了旧的 DirectX SDK:
<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x86</LibraryPath>
和
<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x64;</LibraryPath>
请参阅MSDN,DirectX SDK(2015 版)在哪里?, Zombie DirectX SDK和Not So Direct 设置。
尽管如此,您可能无论如何都不应该使用旧版 Direct3D 9。将 DirectX 11 与 D3DX 的现代替代品之一结合使用是一种更好、更简洁的选择,并且不需要旧版 DirectX SDK。请参阅没有 D3DX 的生活。
如果您的目标是在带有 Direct3D 9 的 Windows XP SP3 上运行程序,您将使用v140_xp
使用 Windows 7.1A SDK而不是Windows 8.1 SDK 的平台工具集。因此,您使用老式的包含顺序。有关详细信息,请参阅此帖子。