XGameRuntimeInitialize

初始化游戏运行时。

语法

HRESULT XGameRuntimeInitialize(  
)  

参数

无。

返回值

类型:HRESULT

如果成功,则返回 S_OK;否则返回错误代码。 有关错误代码的列表,请参阅错误代码。 如果函数由于未找到游戏运行时库 (xgameruntime.dll) 而失败,则将返回值设置为 E_GAMERUNTIME_DLL_NOT_FOUND

备注

要在游戏中使用游戏运行时功能,请先通过调用 XGameRuntimeInitialize 函数来初始化游戏运行时。 尽可能早地调用 XGameRuntimeInitialize 函数,通常在游戏的入口点函数内调用。 同样,通过调用 XGameRuntimeUninitialize 函数,但在游戏退出前尽可能晚地取消初始化游戏运行时。

每个二进制编译和链接到游戏运行时应在启动早期调用 XGameRuntimeInitialize 。 这包括游戏二进制文件以及使用游戏运行时功能的任何 dll 形式的中间件。 在 XGameRuntimeInitialize 函数的内部,将检查编译游戏的所有接口的版本,并将其用于初始化匹配的运行时服务。 在游戏运行时的两个不同版本之间,可能会添加、删除函数,或者在极少数情况下发生中断性行为更改。 从每个组件调用 XGameRuntimeInitialize 将有助于检测生成配置问题,例如,通过两个不同且不兼容的游戏运行时版本进行编译,这两个二进制文件将加载在同一进程中。 这种中断性配置会导致 E_GAMERUNTIME_VERSION_MISMATCH 错误。

下面的示例演示如何在基于 Visual Studio 中 Direct3D 12 桌面游戏模板的游戏的入口点函数中使用 XGameRuntimeInitializeXGameRuntimeUninitialize 函数。 在实例化和注册 Game 对象前调用 XGameRuntimeInitialize 函数,在重置 Game 对象后、但在入口点函数返回前调用 XGameRuntimeUninitialize 函数。

// 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 枚举
使用游戏运行时开发新游戏