2017-10-15 109 views
1

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

但是,当我尝试#include <d3dx9core.h>其中,我检查自己,正确安装在Include目录中,它说它找不到该文件。
VS 2017不会找到DirectX包含文件

我该如何解决这个问题?

+0

你确定要处理depre指定DirectX9?现代DirectX SDK是Windows SDK的一部分,并且还有[DirectX Toolkit辅助库](https://github.com/Microsoft/DirectXTK)。 – VTT

+0

@VTT是的,DirectX9是一项要求。 –

+0

您的解决方案中是否有1个项目?您是否为所有平台/配置组合设置了包含路径? –

回答

2

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

使用旧版的DirectX SDK和VS 2012或更高版本,你需要使用反向路径顺序 - 列出了DirectX SDK文件夹中的标准的人后 - 因为Windows版8.x/10的Windows SDK包含比传统的DirectX SDK更新的标题。当然,没有更新版本的D3DX9头文件。

对于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 

也有这样做那些对MSDN寻址时的几个已知的问题。例如,您应该在包含d3dx9.h之前明确包含d3d9.h,因为否则您将以旧的d3d9.h标题结尾。

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

最后一个疑难杂症:9的Direct3D调试设备不支持Windows 8.x中或Windows 10

一定要看清Where is the DirectX SDKNot So DirectSetup,并DXSETUP Update

您还应该查看Living without D3DXDirectX SDK Tools Catalog,DirectX SDK Samples CatalogThe Zombie DirectX SDK