次の方法で共有


XGameRuntimeInitialize

ゲーム ランタイムを初期化します。

構文

HRESULT XGameRuntimeInitialize(  
)  

パラメーター

ありません。

戻り値

型: HRESULT

正常に実行された場合は S_OK が返され、それ以外の場合はエラー コードが返されます。 エラー コードの一覧については、「エラー コード」を参照してください。 ゲーム ランタイム ライブラリ (xgameruntime.dll) が見つからないために関数が失敗した場合は、戻り値は E_GAMERUNTIME_DLL_NOT_FOUND に設定されます。

解説

ゲームでゲーム ランタイム機能を使用するには、まず XGameRuntimeInitialize 関数を発生させてゲーム ランタイムを初期化します。 一般的にはゲームのエントリポイント関数で、XGameRuntimeInitialize 関数をなるべく早く発生させます。 同様に、XGameRuntimeUninitialize 関数を発生させることで、ゲーム ランタイムをなるべく遅く (ただし、ゲームを終了する前に) 初期化解除します。

各バイナリ コンパイルとゲーム ランタイムへのリンクは、起動時の早い段階で XGameRuntimeInitialize を呼び出す必要があります。 これには、ゲーム バイナリと、ゲーム ランタイム機能を使用する dll 形式のミドルウェアが含まれます。 XGameRuntimeInitialize 関数の内部では、タイトルがコンパイルされたすべてのインターフェイスのバージョンがチェックされ、一致するランタイム サービスの初期化に使用されます。 ゲーム ランタイムの 2 つの異なるバージョン間で、関数を追加、削除、またはまれに動作が変更される場合があります。 各コンポーネントから XGameRuntimeInitialize を呼び出すと、同じプロセス内で読み込まれる 2 つの異なるバイナリによって、ゲーム ランタイムの 2 つの異なるバージョンと互換性のないバージョンに対するコンパイルなどのビルド構成の問題を検出するのに役立ちます。 このような破壊的構成では、E_GAMERUNTIME_VERSION_MISMATCH エラーが発生します。

次の例では、Visual Studio 内で Direct3D 12 Desktop Game テンプレートに基づき、ゲームのエントリポイント関数で XGameRuntimeInitialize 関数と XGameRuntimeUninitialize 関数を使用する方法について示します。 XGameRuntimeInitialize 関数は、Game オブジェクトがインスタンス作成されて登録される前に発生し、XGameRuntimeUninitialize 関数は、Game オブジェクトがリセットされた後、エントリポイント関数が返される前に発生します。

// Entry point
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // Initialize the Gaming Runtime before
    // performing any other activity.
    if (FAILED(XGameRuntimeInitialize()))
        return 1;

    if (!XMVerifyCPUSupport())
        return 1;

    g_game = std::make_unique<Game>();

    // Register class and create window
    {
        // Code omitted for brevity.
        ...
    }

    // Main message loop
    MSG msg = {};
    while (WM_QUIT != msg.message)
    {
        // Code omitted for brevity.
        ...
    }

    g_game.reset();

    // Uninitialize the Gaming Runtime after
    // all other activity has been completed.
    XGameRuntimeUninitialize();

    return (int) msg.wParam;
}

要件

ヘッダー: XGameRuntimeInit.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XGameRuntimeUninitialize
XGameRuntimeInitializeWithOptions
XGameRuntimeInit
XGameRuntime 構造体
XGameRuntime 列挙
ゲーム ランタイムを使用した新しいタイトルの開発