注意: C API 目前仅适用于使用 GDK 和 XDK 的标题。目前不支持 UWP 游戏。
XSAPI 的 C API 的优势
- 允许标题在调用 XSAPI 时控制内存分配。
- 允许标题在调用 XSAPI 时完全控制线程处理。
- 使用为游戏开发人员设计的新的 HTTP 库 libHttpClient。
管理内存分配
使用 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 API 的示例
- libHttpClient GitHub 存储库
- 要查看 C API,请参阅 XSAPI C 头文件。它在作为 GDK 一部分的 XBOX 服务 SDK 中。
