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 桌面游戏模板的游戏的入口点函数中使用 XGameRuntimeInitialize 和 XGameRuntimeUninitialize 函数。 在实例化和注册 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 枚举
使用游戏运行时开发新游戏