DirectX SDK の場所

Windows 8 以降、DirectX SDK は Windows SDK の一部として含まれています。

もともとは、Windows 上のゲーム開発用のハイパフォーマンス プラットフォームとして DirectX SDK を作成しました。 DirectX テクノロジが成熟するにつれて、より広範なアプリケーションに関連するようになりました。 現在、コンピューターでの Direct3D ハードウェアの可用性により、従来のデスクトップ アプリケーションでもグラフィックス ハードウェア アクセラレーションが使用されます。 並行して、DirectX テクノロジは Windows とより統合されています。 DirectX は、Windows の基本的な部分になりました。

DirectX は、Windows 用の主要な開発者 SDK である Windows SDK に収録されています。 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 で使用できます。 D3DX12 は GitHub で入手できます。
HLSL コンパイラ (FXC.EXE)
HLSL コンパイラは、Windows SDK の bin フォルダーの下にある適切なアーキテクチャ サブディレクトリ内のツールです。
メモ: D3DCompiler API と再頒布可能 DLL は、Windows SDK で使用できます。
DirectX 12 開発の場合は、Windows SDK で DXCompiler を使用し、 GitHub でホストします。
PIX for Windows
Pix for Windows ツールの代わりに、Visual Studio グラフィックス デバッガーと呼ばれる Microsoft Visual Studio の機能が追加されました。 この機能により、使いやすさ、Windows 8、Direct3D 11.1 のサポート、 HLSL デバッグ用の呼び出し履歴やデバッグ ウィンドウなどの従来の Microsoft Visual Studio 機能との統合が大幅に向上しました。 この新機能の詳細については、「 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
新しい命令セットと ARM/ARM64 用に更新された最新バージョンの XNAMATH が DirectXMath になりました。 DirectXMath のヘッダーは、Windows SDK と GitHub で入手できます。
DirectX コントロール パネルおよび DirectX 機能ビューアー
DirectX コントロール パネル および DirectX Capabilities Viewer ユーティリティは、Windows SDK の bin フォルダーの下にある適切なアーキテクチャ サブディレクトリに含まれています。 DirectX Capabilities Viewer は、 GitHub でも入手できます。
Xact
Xbox Audio Cross Platform Tool (XACT) は、Windows での使用がサポートされなくなりました。
ゲーム エクスプローラーと GDFMAKER
Games エクスプローラー API は、Windows のユーザーにゲームを提供します。 Games エクスプローラー API は、Windows Vista と Windows 7 でのみサポートされています。 ゲーム定義ファイル メーカー ツール (GDFMAKER.EXE) を使用して、Windows ストア アプリのゲーム評価を宣言します。
Game Definition File Maker ツール (GDFMaker.exe) は、Windows SDK の bin フォルダーの下の x86 サブディレクトリに含まれており、Windows ストア アプリと Win32 デスクトップ アプリケーションの両方をサポートしています。

その他の DirectX SDK ツール
dxtex.exe、meshconvert.exe、texconv.exe、uvatlas.exe などのその他のツールはオンラインで入手できます。 これらのツールの詳細については、「 DirectX SDK ツール カタログ」を参照してください。
サンプル
Windows 上の DirectX 12 テクノロジを強調表示するサンプル アプリケーションについては、 DirectX サンプル リポジトリを参照してください。 以前のバージョンの Direct3D のほとんどのサンプルもオンラインで入手できます。 これらのサンプルの詳細については、「 DirectX SDK サンプル カタログ」を参照してください。
Managed DirectX 1.1
.NET DirectX アセンブリは非推奨であり、新しいアプリケーションでの使用は推奨されません。 利用できる選択肢は多数あります。 「DirectX と .NET」を参照してください。

 

従来の DirectX SDK は、必要に応じて Microsoft ダウンロード センター からダウンロードできますが、新しいプロジェクトに使用することはお勧めしません。

注意

特定のバージョンの Visual C++ 2010 再頒布可能パッケージが既にインストールされている場合、DirectX SDK のインストールが失敗します。 この問題を解決するための詳細と解決策については、「 DirectX SDK (2010 年 6 月) をインストールするときの "S1023" エラー」を参照してください。

 

Visual Studio での DirectX SDK プロジェクトの使用

2010 年 6 月の DirectX SDK のサンプルは、Premium Visual Studio SKU (Microsoft Visual Studio Professional 2012、Microsoft Visual Studio Ultimate 2012、Microsoft Visual Studio Professional でサポートされていますWindows 7 および Windows 8 以降のリリースでは、2013 年、または Microsoft Visual Studio Ultimate 2013) です。 DirectX ヘッダーとライブラリが Windows SDK に移行されるため、Windows 8 SDK 以降を Premium Visual Studio SKU と共にパッケージ化する方法を使用してこれらのサンプルを正しくビルドするには、プロジェクト設定の変更が必要です。

これらの手順は、DirectX SDK に依存する独自のプロジェクトにも適用されます。

  1. DirectX SDK の 2010 年 6 月リリースが開発用コンピューターにインストールされていることを確認します。 Windows 8 以降を実行しているコンピューターにインストールする場合は、DirectX SDK への前提条件インストールとして .NET 3.5 を有効にするように求められます。

    注意

    特定のバージョンの Visual C++ 2010 再頒布可能パッケージが既にインストールされている場合、DirectX SDK のインストールが失敗します。 この問題を解決するための詳細と解決策については、「 DirectX SDK (2010 年 6 月) をインストールするときの "S1023" エラー」を参照してください。

     

  2. Premium Visual Studio SKU のいずれかを使用していることを確認します。 Microsoft Visual Studio Express 2012 for Windows 8 または Microsoft Visual Studio Express 2013 for Windows では、DirectX SDK サンプルなどの Windows 8 以降のデスクトップ アプリケーションはビルドされません。 Premium Visual Studio SKU のいずれかをインストールするには、「Visual Studio の ダウンロード 」に移動し、指示に従います。

  3. DirectX SDK サンプル ブラウザーを使用して、目的のサンプルのプロジェクト ファイルをインストールします。 サンプルの Microsoft Visual Studio 2010 互換ソリューション ファイル ( サフィックスは _2010) を開きます。

  4. Microsoft Visual Studio 2012 または Microsoft Visual Studio 2013のみがインストールされているシステムでサンプルを開いている場合は、次のメッセージが表示されます。"このソリューションには、以前のバージョンの VC++ コンパイラとライブラリを使用する 1 つ以上のプロジェクトが含まれています。 各プロジェクトは、VC++ コンパイラとライブラリ (v110) を使用するように更新できます。プロジェクトを開く前に 更新 するには、このダイアログ ボックスから [更新] オプションを選択します。

    それ以外の場合は、ソリューションを右クリックして [VC++ プロジェクトの更新] を選択して、Visual Studio 2012 または C++ 11 コンパイラとライブラリを読み込んだ後で、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. SDK ヘッダーとライブラリの適切な順序を使用するように、プロジェクトの VC++ ディレクトリを次のように変更します。

      i. プロジェクトの **プロパティ** を開き、[**VC++ ディレクトリ] ページを選択します。 ii. **[すべての構成] と [すべてのプラットフォーム] を選択します。 iii. これらのディレクトリを次のように設定します。
      • 実行可能ディレクトリ: <親またはプロジェクトの既定値から継承します> (右側のドロップダウン)。
      • インクルード ディレクトリ: $(IncludePath);$(DXSDK_DIR)Include
      • インクルード ライブラリ ディレクトリ: $(LibraryPath);$(DXSDK_DIR)Lib\x86

      iv. [Apply] をクリックします。
      v. [x64 プラットフォーム] を選択します
      vi. ライブラリ ディレクトリを次のように設定します。

      • ライブラリ ディレクトリ: $(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. すべての D3DX DLL は、DirectX SDK のインストールによって開発用コンピューターにインストールされます。 必要な D3DX 依存関係が、任意のサンプルと共に、または別のコンピューターに移動された場合はアプリケーションと共に再配布されていることを確認します。

    5. D3DX11 の現在の使用に対する置換テクノロジには、 DirectXTexDirectXTKDirectXMeshUVAtlas が含まれることに注意してください。 D3DXMath は DirectXMath に置き換えられます。

  6. 次の条件を確認して、HLSL シェーダー コンパイラの新しいバージョンを使用していることを確認します。

    1. 手順 5 に従って実行可能ディレクトリを変更すると、Windows SDK インストールからプロジェクト ビルドで FXC が使用されます。 HLSL ファイルは Visual Studio によって正式に認識されるようになりました。 プロジェクト ファイルとして追加し、プロジェクト システムを使用してコンパイラ オプションを設定できます。

    2. レガシ D3DX DLL を使用して実行時コンパイルを呼び出すと、HLSL コンパイラの正しくない古いバージョンが使用されます。 コード内の D3DXCompile*、D3DX10Compile*、D3DX11Compile* API へのすべての参照を、D3DCOMPILER_46.DLL または D3DCOMPILER_47.DLL の D3DCompile 関数に置き換えます。

    3. ランタイム シェーダー コンパイルを使用するプロジェクトでは、プロジェクトのローカル実行可能パスに D3DCOMPILER_xx.DLL コピーする必要があります。 この DLL は、 %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D<\arch> または %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch><(arch>x86 および x64) の下にある Windows SDK インストールのこのサブディレクトリで使用できます。

      Windows SDK の D3DCOMPILER_46.DLL または D3DCOMPILER_47.DLL はシステム コンポーネントではなく、Windows システム ディレクトリにコピーしないでください。 この DLL は、アプリケーションをサイド バイ サイド DLL として他のコンピューターに再配布できます。

  7. 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 を使用するには、DirectX SDK の特定の XInput ヘッダーを直接使用する必要があります #include

    #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 の特定の XAudio2 ヘッダーを直接指定する必要があります #include

    #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. 過去のバージョンの 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 パスへのすべての参照を削除します。 または、ExecutablePath や <IncludePath>> などの <Path エントリを含む PropertyGroup> ノード全体<を削除して、標準の既定値に戻すことができます。 これらのファイルに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. [Apply] をクリックします。

Windows と DirectX SDK 向けのゲームに関するブログ

DirectX SDK (2021 エディション) はどこにありますか?

特定の年齢の DirectX SDK

D3DX なしで生活する