XSAPI C 概述

2018 年 6 月,向 XSAPI 添加了 C API 层。 C API 层解决了 C++ 和 WinRT API 层出现的一些问题。

注意:
C API 目前仅适用于使用 Xbox 开发者工具包 (XDK) 的游戏。 目前不支持 UWP 游戏。

XSAPI 的 C API 的优点

  • 允许游戏在调用 XSAPI 时控制内存分配。
  • 允许游戏在调用 XSAPI 时完全控制线程处理。
  • 使用专为游戏开发者设计的新 HTTP 库 libHttpClient。

你可以将 C API 与 C++ XSAPI 一起使用,但不会获得上面列出的 C++ API 的优点。

管理内存分配

使用 C API,现在可以指定 XSAPI 每次尝试分配内存时都会调用的函数回调。 如果你不指定函数回调,XSAPI 将使用标准内存分配例程。

若要手动指定内存例程,可以执行以下操作:

  • 在游戏开始时:
    • 调用 XblMemSetFunctions(memAllocFunc, memFreeFunc) 为分配和释放内存指定分配回调。
    • 调用 XblInitialize() 来初始化库实例。
  • 当游戏运行时:
    • 调用 XSAPI 中分配或释放内存的任何新 C API 将导致 XSAPI 调用指定的内存处理回调。
  • 当游戏退出时:
    • 调用 XblCleanup() 回收与 XSAPI 库关联的所有资源。
    • 清除游戏的自定义内存管理器。

管理异步线程

C API 引入了允许开发者完全控制线程模型的新异步线程调用模式。 有关详细信息,请参阅 XSAPI C 层异步调用的调用模式

迁移代码以使用 C XSAPI

XSAPI C API 在项目中可以与 XSAPI C++ API 一起使用,因此,建议你一次迁移一项功能。

C API 和 C++ API 实际上就是通用核心周围的精简包装,只是入口点不同,因此功能应保持不变。

但是,仅 C API 可以利用自定义内存和线程管理功能。

重要提示:
你不能将 XSAPI WinRT API 与 C API 混合。

有用的资源

另请参阅

XSAPI C 参考

REST API 参考

HttpClient 参考