要在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 SDK,Not So DirectSetup,并DXSETUP Update
您还应该查看Living without D3DX ,DirectX SDK Tools Catalog,DirectX SDK Samples Catalog和The Zombie DirectX SDK
你确定要处理depre指定DirectX9?现代DirectX SDK是Windows SDK的一部分,并且还有[DirectX Toolkit辅助库](https://github.com/Microsoft/DirectXTK)。 – VTT
@VTT是的,DirectX9是一项要求。 –
您的解决方案中是否有1个项目?您是否为所有平台/配置组合设置了包含路径? –