共用方式為


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取得,但也有數 開放原始碼替代專案。 在 Windows SDK 中可獲得 D3DCSX DirectCompute 實用程式庫和可再發行的 DLL。 D3DX12 在 GitHub上提供。
HLSL 編譯程式 (FXC.EXE)
HLSL 編譯程式是 Windows SDK 中 bin 資料夾下適當架構子目錄中的工具。
注意: Windows SDK 中提供 D3DCompiler API 和可重分發的 DLL。
針對 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
不再支援 Xbox 音訊跨平臺工具 (XACT) 在 Windows 上使用。
遊戲瀏覽器 和 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 的範例在 Windows 7、Windows 8 及其後續版本上,受到高階版本的 Visual Studio(如 Microsoft Visual Studio Professional 2012、Microsoft Visual Studio Ultimate 2012、Microsoft Visual Studio Professional 2013 或 Microsoft Visual Studio Ultimate 2013)的支援。 由於 DirectX 標頭檔和函式庫已轉換到 Windows SDK,需要變更專案設定,以便正確地使用 Windows 8 SDK 及其後版本與高級 Visual Studio SKU 來編譯這些範例。

這些步驟也適用於相依於 DirectX SDK 的您自己的專案。

  1. 請確定您的開發電腦上安裝 DirectX SDK 的 2010 年 6 月版本。 如果您安裝到執行 Windows 8 和更新版本的電腦上,系統會提示您啟用 .NET 3.5 作為 DirectX SDK 的必要安裝。

    注意

    如果您已安裝特定版本的 Visual C++ 2010 可轉散發套件,DirectX SDK 將無法安裝。 若需了解及找出解決此問題的方法,請參閱安裝 DirectX SDK (2010 年 6 月) 時的 「S1023」錯誤

     

  2. 請確定您使用其中一個進階 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 下載 並遵循指示。

  3. 使用 DirectX SDK 範例瀏覽器來安裝所需範例的項目檔。 開啟範例的 Microsoft Visual Studio 2010 相容方案檔 (後綴為 _2010)。

  4. 如果您要在只安裝 Microsoft Visual Studio 2012 或 Microsoft Visual Studio 2013 的系統上開啟範例,您會收到下列訊息:「此解決方案包含一或多個使用舊版 VC++ 編譯程式和連結庫的專案。 每個專案都可以更新為使用 VC++ 編譯程式和連結庫 (v110)。從此對話框選擇 [更新] 選項,以在您開啟專案之前進行更新。

    否則,您可以在載入完成後,以滑鼠右鍵按一下方案,然後選擇 Update VC++ 專案,以更新至 Visual Studio 2012 或 Visual Studio 2013 C++ 11 編譯器和程式庫。

  5. D3DX 不會被視為在 Windows 8 和更新版本中使用 Direct3D 的正式 API,因此不會隨附於對應的 Windows SDK 中。 調查使用 Direct3D API 的替代解決方案。 對於舊版專案,例如 Windows 7(及更早版本)的 DirectX SDK 範例,若要使用 DirectX SDK 建置包含 D3DX 的應用程式,必須完成以下步驟:

    1. 修改專案的 VC++ 目錄,如下所示,以針對 SDK 標頭和連結庫使用正確的順序。

      一 開啟專案的 [屬性] ,然後選取 [VC++ 目錄] 頁面。 第二。 選取 [所有組態] 和 [所有平臺]。 第三。 設定這些目錄,如下所示:
      • 可執行檔案目錄:<繼承自父系或項目預設值> (右側下拉式清單)
      • 包含目錄:$(IncludePath):$(DXSDK_DIR)Include
      • 包含庫目錄:$(LibraryPath);$(DXSDK_DIR)Lib\x86

      四。 點選 套用
      v. 選擇 x64 平台
      六。 設定 Library Directory,如下所示:

      • 程式庫目錄:$(LibraryPath);$(DXSDK_DIR)Lib\x64
    2. 凡是 「d3dx9.h」 “ d3dx10.h” 或 “d3dx11.h” 包含在您的專案中,請務必明確包含 “d3d9.h”、“d3d10.h” 和 “dxgi.h” 或 “d3d11.h” 和 “dxgi.h” ,以確保您挑選較新的版本。 您可以視需要停用 警告 C4005;不過,此警告表示您使用這些標頭的較舊版本。

    3. 請移除您專案中對 DXGIType.h 的所有參考。 此標頭不存在於 Windows SDK 中,且 DirectX SDK 版本與新的 winerror.h 衝突。

    4. DirectX SDK 安裝會將所有 D3DX DLL 安裝在您的開發電腦上。 請確保必要的 D3DX 相依性會隨任何範例或您的應用程式一同隨附,特別是當應用程式被移至另一部計算機時。

    5. 請注意,目前使用 D3DX11 的替代技術包括 DirectXTexDirectXTKDirectXMeshUVAtlas。 D3DXMath 會由 DirectXMath取代。

  6. 請觀察下列條件,確定您使用新版的 HLSL 著色器編譯程式:

    1. 根據步驟 5 變更可執行文件目錄會導致專案組建從 Windows SDK 安裝使用 FXC。 請注意,Visual Studio 現在已正式辨識 HLSL 檔案。 您可以將它們新增為項目檔,並透過專案系統設定編譯程序選項。

    2. 透過舊版 D3DX DLL 叫用運行時間編譯會使用不正確的舊版 HLSL 編譯程式。 將程式代碼中 D3DXCompile*、D3DX10Compile*和 D3DX11Compile* API 的所有參考取代為 D3DCOMPILER_46.DLL 或 D3DCOMPILER_47.DLL 中的 D3DCompile 函式。

    3. 任何使用運行時間著色器編譯的專案都必須D3DCOMPILER_xx.DLL複製到專案的本機可執行文件路徑。 此 DLL 可在 Windows SDK 安裝的子目錄 %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch>%ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch> 中找到,其中 <arch>x86x64

      Windows SDK 中的D3DCOMPILER_46.DLL或D3DCOMPILER_47.DLL不是系統元件,不應該複製到 Windows 系統目錄。 您可以將此 DLL 與您的應用程式一同重新分發到其他電腦,作為並列 DLL。

  7. 任何使用 XInput API 且打算在 Windows 7 或舊版 Windows 上執行的專案都需要使用舊版版本 (9.1.0),或需要從 DirectX SDK 明確包含此元件的標頭和連結庫。 XInput 標頭和 XINPUT.LIB 檔案僅針對作為 Windows 8 及更新版本一部分的版本(1.4)進行編譯,這些檔案包含在 Windows SDK 中。 相同的標頭可以搭配 XINPUT9_1_0.LIB 使用,以使用舊有版本的 XINPUT,該版本隨附於較舊的 Windows 版本中。 舊版 XInput 不會偵測到完整的功能或支援控制器整合音訊,因此如果需要這些功能的支援,您必須使用 DirectX SDK 版本 (1.3)。

    若要使用功能完整的下層 XInput API,您應該直接從 DirectX SDK #include 特定的 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 安裝程式重新分發此二進位檔,並將其整合到您的應用程式中。

  8. 任何使用 XAudio2 API 且打算在 Windows 7 或舊版 Windows 上執行的專案都需要使用舊版 (9.1.0), 或明確包含 DirectX SDK 中此元件的標頭和連結庫。 隨附於 Windows SDK 的 XAudio2 標頭和連結庫只會以 Windows 8 隨附的版本 (2.8) 為目標。

    例如,使用 XAudio2 時,您應該直接從 DirectX SDK #include 特定的 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 設定程式安裝這些程式庫,並將它們隨您的應用程式重新發佈。

  9. 如果您已將 DirectX SDK 與舊版 Visual Studio 搭配使用,Visual Studio 2010 升級可能已將 DirectX SDK 路徑移轉至您的預設項目設定。 建議您移除這些設定,以防止未來的建置錯誤。 在 %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 目錄中,修改 Microsoft.Cpp.Win32.userMicrosoft.Cpp.x64.user 檔案,以移除DXSDK_DIR路徑的所有參考。 或者,您可以移除整個 <PropertyGroup> 節點,其中包含 Path 項目,例如 <ExecutablePath> 和 <IncludePath>,以恢復為標準預設值。 如果您沒有看到這些檔案中DXSDK_DIR的參考,則不需要變更。

  10. 如果產生的應用程式支援 Windows Vista Service Pack 2 (SP2) 以及 Windows 7 和 Windows 8 和更新版本,請將名為 _WIN32_WINNT 的預處理器定義設定為 0x600。 如果它只支援 Windows 7 和 Windows 8 和更新版本,請將它設定為 0x601。

    例如:

    1. 開啟專案的 [屬性],然後選取 [C/C++>預處理器
    2. 選取 [所有組態][所有平臺]
    3. 移至 預處理器定義 區段,並設定 _WIN32_WINNT=0x600。
    4. 點選 「套用」

適用於 Windows 的遊戲和 DirectX SDK

DirectX SDK (2021 Edition) 在哪裡?

特定時期的 DirectX SDK

沒有 D3DX 的生活