VS 2017 找不到 DirectX 包含文件

VS 2017 won't find DirectX include files

我已经安装了 DirectX SDK,我想在 Visual Studio 2017 年的 C++ 项目中使用。我配置了 C++ 包含路径并添加了一个包含 DirectX SDK 包含文件的目录($(DXSDK_DIR)Include\ ) 正确解析为所有文件所在的 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\

但是当我尝试 #include <d3dx9core.h> 时,正如我自己检查的那样,它已正确安装在 Include 目录中,它说找不到该文件。

我该如何解决这个问题?

要将旧版 DirectX SDK 与 VS 2010 或更高版本一起使用,您必须手动添加对 include/lib 路径的引用。这通常是通过编辑项目的 VC++ Directories 设置来完成的,将 DirectX SDK 文件夹放在首位。

要将旧版 DirectX SDK 与 VS 2012 或更高版本一起使用,您需要使用反转路径顺序——在标准文件夹之后列出 DirectX SDK 文件夹——因为 Windows 8.x / Windows 10 SDK 包含比旧版 DirectX SDK 更新 headers。当然,没有更新版本的 D3DX9 headers.

对于 x86/Win32 配置:

$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86
$(IncludePath);$(DXSDK_DIR)Include
$(LibraryPath);$(DXSDK_DIR)Lib\x86

对于 x64 本机配置:

$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86
$(IncludePath);$(DXSDK_DIR)Include
$(LibraryPath);$(DXSDK_DIR)Lib\x64

执行此操作时还有一些已知问题已在 Microsoft Docs 上解决。例如,您应该在包含 d3dx9.h 之前明确包含 d3d9.h,否则您最终会得到较旧的 d3d9.h header.

顺便说一句,dxerr.lib 静态库与 VS 2015/VS 2017 C/C++ 运行时不兼容。 Where’s DXERR.LIB?

最后一个陷阱:Windows 8.x 或 Windows 10.

不支持 Direct3D 9 调试设备

Be sure to see Where is the DirectX SDK, Not So DirectSetup, and DXSETUP Update

You should also review Living without D3DX, DirectX SDK Tools Catalog, DirectX SDK Samples Catalog and The Zombie DirectX SDK