要在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個項目?您是否爲所有平臺/配置組合設置了包含路徑? –