DirectX SDK 在哪裡?
從 Windows 8 開始,DirectX SDK 會包含在 Windows SDK 中。
我們最初建立了 DirectX SDK 作為高效能平臺,用於在 Windows 上進行遊戲開發。 隨著 DirectX 技術成熟,它們變得與更廣泛的應用程式有關。 目前,電腦中的 Direct3D 硬體可用性甚至會驅動傳統桌面應用程式,以使用圖形硬體加速。 平行地,DirectX 技術更與 Windows 整合。 DirectX 現在是 Windows 的基本部分。
因為 Windows SDK 是 Windows 的主要開發人員 SDK,所以 DirectX 現在包含在其中。 您現在可以使用 Windows SDK 來建置適用于 Windows 的絕佳遊戲。 若要下載Windows 11 SDK、Windows 10 SDK 或 Windows 8.x SDK,請參閱Windows SDK 和模擬器封存。
下列技術和工具,先前是 DirectX SDK 的一部分,現在是 Windows SDK 的一部分。
技術或工具 | 描述 |
---|---|
Windows 圖形元件 |
Direct3D和其他 Windows 圖形 API 的標頭和程式庫,例如Direct2D,可在 Windows SDK 中使用。 注意:已淘汰的 D3DX9/D3DX10/D3DX11 公用程式程式庫可透過NuGet取得,但也有一些開放原始碼替代方案。 D3DCSX DirectCompute 公用程式程式庫和可轉散發 DLL 可在 Windows SDK 中使用。 GitHub 上提供 D3DX12。 |
HLSL 編譯器 (FXC.EXE) |
HLSL編譯器是 Windows SDK 中 bin 資料夾下適當架構子目錄中的工具。 注意: D3DCompiler API 和可轉散發 DLL 可在 Windows SDK 中使用。 針對 DirectX 12 開發,請使用 Windows SDK 中的 DXCompiler,並裝載于 GitHub上。 |
適用于 Windows 的 PIX |
取代適用于 Windows 的 PIX 工具現在是 Microsoft Visual Studio 中的功能,稱為 Visual Studio 圖形偵錯工具。 這項功能已大幅改善可用性、支援 Windows 8 和 Direct3D 11.1,並與傳統的 Microsoft Visual Studio 功能整合,例如呼叫堆疊和 HLSL 偵錯視窗。 如需這項新功能的詳細資訊,請參閱 偵錯 DirectX 圖形。 如需 DirectX 12 開發,請參閱 Windows 上最新一代的 PIX |
適用于 Windows 的XAudio2 |
XAudio2 API 現在是 Windows 11、Windows 10 和 Windows 8.x 中的系統元件。 XAudio2 的標頭和程式庫可在 Windows SDK 中使用。 如需 Windows 7 支援,請參閱 XAudio2Redist。 |
適用于 Windows 的XInput |
XInput 1.4 API 現在是 Windows 11、Windows 10 和 Windows 8.x 中的系統元件。 XInput 的標頭和程式庫可在 Windows SDK 中使用。 注意: 舊版 XInput 9.1.0 也可作為 Windows 7 或更新版本的一部分使用。 |
XNAMATH |
最新版的 XNAMATH 已針對新的指令集以及 ARM/ARM64 更新,現在是 DirectXMath。 DirectXMath 的標頭可在 Windows SDK 和 GitHub上使用。 |
DirectX 主控台和 DirectX 功能檢視器 |
DirectX 主控台和 DirectX 功能檢視器公用程式包含在 Windows SDK 中 bin 資料夾下的適當架構子目錄中。
GitHub上也提供 DirectX 功能檢視器。 |
XACT |
不再支援在 Windows 上使用 Xbox 音訊跨平臺工具 (XACT) 。 |
遊戲總管 和 GDFMAKER |
遊戲總管API 會將遊戲呈現給 Windows 的使用者。 只有 Windows Vista 和 Windows 7 才支援遊戲總管 API。 使用遊戲定義檔案製作工具 (GDFMAKER.EXE) 來宣告 Windows 市集應用程式的遊戲評等。 遊戲定義檔案製作工具 (GDFMaker.exe) 包含在 Windows SDK 中 bin 資料夾下的 x86 子目錄中,並支援 Windows 市集應用程式和 Win32 傳統型應用程式。 |
其他 DirectX SDK 工具 |
您可以在線上找到其他工具,例如 dxtex.exe、meshconvert.exe、texconv.exe 和 uvatlas.exe。 如需這些工具的詳細資訊,請參閱 DirectX SDK 工具目錄。 |
範例 |
您可以在 DirectX 範例 存放庫中找到醒目提示 Windows 上 DirectX 12 技術的範例應用程式。 舊版 Direct3D 的大部分範例也可以在線上取得。 如需這些範例的詳細資訊,請參閱 DirectX SDK 範例目錄。 |
受控 DirectX 1.1 |
.NET DirectX 元件已被取代,不建議供新應用程式使用。 有一些替代方案可供使用。 請參閱 DirectX 和 .NET。 |
如有需要,您可以從 Microsoft 下載中心 下載舊版 DirectX SDK,但不建議用於新專案。
注意
如果您已安裝特定版本的 Visual C++ 2010 可轉散發套件,則 DirectX SDK 無法安裝。 如需修正此問題的詳細資訊和解決方案,請參閱 安裝 DirectX SDK (2010 年 6 月) 時發生「S1023」錯誤 。
搭配 Visual Studio 使用 DirectX SDK 專案
2010 年 6 月 DirectX SDK 的範例支援進階 Visual Studio SKU (Microsoft Visual Studio Professional 2012 Microsoft Visual Studio Ultimate 2012,Microsoft Visual Studio ProfessionalWindows 7 和 Windows 8 和更新版本上的 2013 或 Microsoft Visual Studio Ultimate 2013) 。 由於 DirectX 標頭和程式庫轉換至 Windows SDK,因此需要變更專案設定,才能正確地使用 Windows 8 SDK 和更新版本封裝進階 Visual Studio SKU 來建置這些範例。
這些步驟也適用于相依于 DirectX SDK 的您自己的專案。
請確定您的開發電腦上安裝 DirectX SDK 的 2010 年 6 月版本。 如果您安裝到執行 Windows 8 和更新版本的電腦上,系統會提示您啟用 .NET 3.5 作為 DirectX SDK 的必要安裝。
注意
如果您已安裝特定版本的 Visual C++ 2010 可轉散發套件,則 DirectX SDK 無法安裝。 如需修正此問題的詳細資訊和解決方案,請參閱 安裝 DirectX SDK (2010 年 6 月) 時發生「S1023」錯誤 。
請確定您使用其中一個進階 Visual Studio SKU。 Microsoft Visual Studio Express 2012 for Windows 8 或 Microsoft Visual Studio Express 2013 for Windows 不會建置 Windows 8 和更新版本的傳統型應用程式,例如 DirectX SDK 範例。 若要安裝其中一個進階 Visual Studio SKU,請移至: Visual Studio 下載 並遵循指示。
使用 DirectX SDK 範例瀏覽器來安裝所需範例的專案檔。 開啟範例的 Microsoft Visual Studio 2010 相容方案檔, (尾碼為 _2010) 。
如果您要在僅安裝 Microsoft Visual Studio 2012 或 Microsoft Visual Studio 2013的系統上開啟範例,您會收到下列訊息:「此解決方案包含使用舊版 VC++ 編譯器和程式庫的一或多個專案。 每個專案都可以更新為使用 VC++ 編譯器和程式庫, (v110) 」。在開啟專案之前,請先從這個對話方塊選擇 [ 更新 ] 選項進行更新。
否則,您可以在 Visual Studio 2012 或 Visual Studio 2013 C++ 11 編譯器和程式庫載入之後更新,方法是以滑鼠右鍵按一下方案並選擇[更新 VC++ 專案]。
D3DX 不會被視為標準 API,可在 Windows 8 和更新版本中使用 Direct3D,因此不會包含在對應的 Windows SDK 中。 調查使用 Direct3D API 的替代解決方案。 針對舊版專案,例如 Windows 7 (和更早版本的) DirectX SDK 範例,您必須執行下列步驟,才能使用 DirectX SDK 建置具有 D3DX 的應用程式:
修改專案的 VC++ 目錄,如下所示,以針對 SDK 標頭和程式庫使用正確的順序。
- i. 開啟專案的 [屬性] ,然後選取 [VC++ 目錄] 頁面。
ii. 選取 [所有組態] 和 [所有平臺]。
iii. 請依照下列方式設定這些目錄:
- 可執行檔目錄:< 繼承自父代或專案預設值 > (右側下拉式清單)
- 包含目錄: $ (IncludePath) ;$ (DXSDK_DIR) Include
- 包含程式庫目錄: $ (LibraryPath) ;$ (DXSDK_DIR) Lib\x86
- 程式庫目錄: $ (LibraryPath) ;$ (DXSDK_DIR) Lib\x64
iv. 按一下 [套用]。
v. 選擇 x64 平臺。
vi. 設定連結 庫目錄 ,如下所示:wherever 「d3dx9.h」, 「d3dx10.h」 或 「d3dx11.h」 包含在您的專案中,請務必明確包含 「d3d9.h」、「d3d10.h」 和 「dxgi.h」 或 「d3d11.h」 和 「dxgi.h」,以確保您挑選較新的版本。 如有需要,您可以停用 警告 C4005 ;不過,這個警告表示您使用的是舊版的這些標頭。
移除專案中 DXGIType.h 的所有參考。 此標頭不存在於 Windows SDK 中,且 DirectX SDK 版本與新的 winerror.h 衝突。
DirectX SDK 安裝會將所有 D3DX DLL 安裝到您的開發電腦上。 確定必要的 D3DX 相依性會隨任何範例或您的應用程式一起轉散發,如果它移到另一部電腦。
請注意,目前使用 D3DX11 的取代技術包括 DirectXTex、 DirectXTK、 DirectXMesh和 UVAtlas。 D3DXMath 會由 DirectXMath取代。
請觀察下列條件,確定您使用的是新版本的 HLSL 著色器編譯器:
根據步驟 5 變更可執行檔目錄會導致專案組建從 Windows SDK 安裝使用 FXC。 請注意,Visual Studio 現在已正式辨識 HLSL 檔案。 您可以將這些專案新增為專案檔,並透過專案系統設定編譯器選項。
透過舊版 D3DX DLL 叫用執行時間編譯將會使用舊版的 HLSL 編譯器不正確。 將程式碼中 D3DXCompile*、D3DX10Compile*和 D3DX11Compile* API 的所有參考取代為 D3DCOMPILER_46.DLL 或 D3DCOMPILER_47.DLL 中的 D3DCompile 函式。
任何使用執行時間著色器編譯的專案都必須 D3DCOMPILER_xx.DLL 複製到專案的本機可執行檔路徑。 此 DLL 位於%ProgramFiles (x86) %\Windows Kits\8.0\Redist\D3D\ < arch 或 %ProgramFiles (x86) %\Windows Kits\8.1\Redist\D3D\arch 底下的 Windows SDK 安裝子目錄中,其中 arch >為 x86 和x64。<><>
Windows SDK 中的 D3DCOMPILER_46.DLL 或 D3DCOMPILER_47.DLL 不是系統元件,不應複製到 Windows 系統目錄。 您可以將此 DLL 轉散發給具有應用程式的其他電腦,作為並存 DLL。
任何使用 XInput API 且旨在在 Windows 7 或舊版 Windows 上執行的專案,都必須使用舊版版本 (9.1.0) ,或必須從 DirectX SDK 明確包含此元件的標頭和程式庫。 XInput 標頭和XINPUT。Windows SDK 中包含的 LIB 僅以隨附于 Windows 8 和更新版本的版本 (1.4) 為目標。 相同的標頭可以搭配 XINPUT9_1_0.LIB 使用舊版 Windows 隨附的舊版。 舊版 XInput 不會偵測完整的功能或支援控制器整合的音訊,因此如果需要這些功能的支援,您必須使用 DirectX SDK 版本 (1.3) 。
若要使用功能完整的下層 XInput API,您應該
#include
直接從 DirectX SDK 使用特定的 XInput 標頭:#include <%DXSDK_DIR%Include\xinput.h>
...在 [其他相依性] 的連結器選項中,直接連結至 DirectX SDK XInput 程式庫:
%DXSDK_DIR%Include\ < arch > \xinput.lib
XINPUT1_3.DLL 二進位檔是由開發電腦上的 DirectX SDK 安裝安裝安裝至 Windows 系統目錄。 您必須使用 DirectX SDK 的 DirectX 安裝程式安裝,將這個二進位檔與您的應用程式重新發佈。
任何使用 XAudio2 API 且旨在在 Windows 7 或舊版 Windows 上執行的專案,都必須使用舊版 (9.1.0) ,或明確包含 DirectX SDK 中此元件的標頭和程式庫。 Windows SDK 隨附的 XAudio2 標頭和程式庫只會以 Windows 8 隨附的版本 (2.8) 為目標。
例如,使用 XAudio2 時,您應該
#include
直接從 DirectX SDK 取得特定的 XAudio2 標頭:#include <%DXSDK_DIR%Include\xaudio2.h>
...在 [其他相依性] 的連結器選項中,直接連結至 DirectX SDK XAudio2 程式庫:
%DXSDK_DIR%Include\arch > \ < xaudio2.lib
XAUDIO2_7.DLL 二進位檔是由開發電腦上的 DirectX SDK 安裝安裝安裝至 Windows 系統目錄。 您必須使用 DirectX SDK 的 DirectX 安裝程式安裝,將這些程式庫與應用程式重新發佈。
如果您已搭配舊版 Visual Studio 使用 DirectX SDK,Visual Studio 2010 升級可能已將 DirectX SDK 路徑移轉至您的預設專案設定。 建議您移除這些設定,以防止未來的建置錯誤。 在 %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 目錄中,修改 Microsoft.Cpp.Win32.user 和 Microsoft.Cpp.x64.user 檔案,以移除所有DXSDK_DIR路徑的參考。 或者,您可以移除 < 包含 Path 專案的完整 PropertyGroup > 節點,例如 < ExecutablePath 和 < IncludePath >> ,以還原為標準預設值。 如果您看不到這些檔案中DXSDK_DIR的參考,則不需要變更。
如果產生的應用程式支援 Windows Vista 搭配 Service Pack 2 (SP2) 以及 Windows 7 和 Windows 8 和更新版本,請將名為 _WIN32_WINNT 的預處理器定義設定為 0x600 。 如果它只支援 Windows 7 和 Windows 8 和更新版本,請將它設定為 0x601。
例如:
- 開啟專案的[屬性],然後選取[C/C++>預處理器]。
- 選取[所有組態] 和 [所有平臺]。
- 移至 [ 預處理器定義 ] 區段並設定 _WIN32_WINNT=0x600。
- 按一下 [套用]。
相關主題
-
適用於 Windows 與 DirectX SDK 的遊戲