2017-10-15 156 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