다음을 통해 공유


Xbox의 Microsoft 게임 개발 키트 전처리기 정의

이 항목에서는 Xbox의 Microsoft GDK(게임 개발 키트)에 적용되는 전처리기 정의를 나열합니다.

프로세서 정의

설명

_GAMING_XBOX 다음은 Xbox One에 대한 공식 정의입니다.
#ifdef _GAMING_XBOX
          // Microsoft Game Development Kit (GDK) on Xbox.
          ...
        
_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 값이나 WINAPI_FAMILY_PARTITION 매크로, WINAPI_FAMILY_ONE_PARTITION 매크로를 직접 사용해서는 안 됩니다. 클라이언트 코드에는 WINAPI_FAMILY의 특정 값을 찾는 것이 좋습니다. winapifamily.h의 Windows 8.1 SDK 버전에는 이 용도로 사용할 수 있는 확장된 주석 블록이 있습니다.

Xbox 코드에서 다음의 Microsoft GDK(게임 개발 키트)를 사용하는 것이 모범 사례입니다.

#ifdef _GAMING_XBOX
// GDK on Xbox
#ifdef _GAMING_XBOX_SCARLETT
// Xbox Series X/S hardware
#elif _GAMING_XBOX_ONE
// Xbox One hardware

Microsoft GDK(게임 개발 키트)를 사용하여 빌딩하는 경우, Visual Studio IDE(Integrated development environment) Microsoft Build 규칙이 _GAMING_XBOXWINAPI_FAMILY=WINAPI_FAMILY_GAMES을(를) 자동으로 정의합니다. Microsoft 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 게임 개발 키트를 사용할 때 'stock' x64 플랫폼에도 사용됩니다.

Microsoft 플랫폼 간 코드를 작성하는 경우, 일반적으로 다음의 구조도 적용할 수 있습니다.

    #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