> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX 上の GDK のプリプロセッサ定義

> XBOX 上の Microsoft Game Development Kit のプリプロセッサ定義

この記事では、XBOX 上の Microsoft Game Development Kit (GDK) に固有のプリプロセッサ定義について説明します。

| プリプロセッサ定義                                  | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| \_GAMING\_XBOX                             | XBOX One または XBOX Series X\|S の公式定義です。#ifdef \_GAMING\_XBOX // XBOX 上の Microsoft Game Development Kit (GDK)。...                                                                                                                                                                                                                                                                                                                             |
| \_GAMING\_XBOX\_XBOXONE                    | XBOX One 上の GDK でビルドしていることを示す定義です。                                                                                                                                                                                                                                                                                                                                                                                                          |
| \_GAMING\_XBOX\_SCARLETT                   | XBOX Series X\|S 上の GDK でビルドしていることを示す定義です。                                                                                                                                                                                                                                                                                                                                                                                                  |
| \_GAMING\_DESKTOP                          | GDK を使用して PC 上でビルドしていることを示す定義です。                                                                                                                                                                                                                                                                                                                                                                                                            |
| \_M\_X64、\_M\_IX86、\_M\_ARM64、および \_M\_ARM | プラットフォームではなくプロセッサ アーキテクチャに固有のコードを記述する際は、これらの定義を使用します。XBOX 360 の場合、対応する定義は \_M\_PPCBE です。\_M\_AMD64 は \_M\_X64 の別名で、元の名前でした。現在は \_M\_X64 に置き換えられ、段階的に廃止されつつあります。*X86* や *AMD64* などの Windows レガシー定義は使用しないでください。                                                                                                                                                                                                                               |
| WINAPI\_FAMILY                             | Microsoft プラットフォームのヘッダーは、winapifamily.h で定義されている Windows のファミリおよびパーティション マクロを広範に使用します。パーティションは変更される可能性があります (実際、Windows 8.0 SDK と Windows 8.1 SDK の間で変更されています)。また、新しい PARTITION および FAMILY 値も時間の経過とともに追加されます。クライアント コードは、PARTITION 値、WINAPI\_FAMILY\_PARTITION マクロ、または WINAPI\_FAMILY\_ONE\_PARTITION マクロを直接使用してはなりません。クライアント コードで WINAPI\_FAMILY の特定の値を確認するのは妥当です。Windows 8.1 SDK バージョンの winapifamily.h には、この使用法をカバーする拡張されたコメント ブロックがあります。 |

XBOX 上の Microsoft Game Development Kit (GDK) コードでは、次のプリプロセッサ定義を使用します。

```cpp theme={null}
#ifdef _GAMING_XBOX
// GDK on Xbox
```

```cpp theme={null}
#ifdef _GAMING_XBOX_SCARLETT
// Xbox Series X|S hardware
#elif _GAMING_XBOX_ONE
// Xbox One hardware
```

Microsoft Game Development Kit (GDK) を使用してビルドすると、Visual Studio 統合開発環境 (IDE) の Microsoft ビルド ルールが `_GAMING_XBOX` と `WINAPI_FAMILY=WINAPI_FAMILY_GAMES` を自動的に定義します。Microsoft Game Development Kit (GDK) に対するビルドに Visual Studio IDE を使用しない開発者は、これらの値をコンパイラのコマンド ラインで指定する必要があります。

## Gaming.Xbox.XboxOne.x64

```
/D_GAMING_XBOX /D_GAMING_XBOX_XBOXONE /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES  
```

## Gaming.Xbox.Scarlett.x64

```
/D_GAMING_XBOX /D_GAMING_XBOX_SCARLETT /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES  
```

## Gaming.Desktop.x64

```
/D_GAMING_DESKTOP /DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
```

> これらの定義は、Microsoft Game Development Kit を使用する場合、「クラシック」な x64 プラットフォームにも適用されます。

Microsoft のクロスプラットフォーム コードを記述する際は、次の構造を使用できます。

```cpp theme={null}
    #if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
    // This code is for Win32 desktop apps.
    #elif WINAPI_FAMILY == WINAPI_FAMILY_GAMES
    // This code is for the Microsoft Game Development Kit (GDK) (could also use _GAMING_XBOX if only targeting Xbox).
    #elif WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
    // This code is for Windows phone 8.x.
    #elif WINAPI_FAMILY == WINAPI_FAMILY_APP
    // This code is for Microsoft Store apps for 8.x.
    #elif WINAPI_FAMILY == WINAPI_FAMILY_TV_TITLE
    // This code is for Xbox One Game OS/XDK.
    #elif WINAPI_FAMILY == WINAPI_FAMILY_TV_APP
    // This code is for Xbox One System OS/ADK.
    #else
    #error Unknown WINAPI_FAMILY value
    #endif  
```


## Related topics

- [Visual Studio (目次)](/ja-jp/tools/tools-pc/visualstudio/gr-visualstudio-toc.md)
- [XBOX Series X|S および XBOX One 向けに Visual Studio を構成する](/ja-jp/tools/tools-console/visualstudio/vs-cross-gen.md)
- [chat_manager::set_thread_affinity_mask](/ja-jp/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_affinity_mask.md)
- [chat_manager::set_thread_processor](/ja-jp/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_processor.md)
- [PC ゲーム開発向け Visual Studio プロジェクト テンプレート](/ja-jp/tools/tools-pc/visualstudio/gr-vs-templates.md)
