> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XSAPI C 概觀

> GDK 遊戲中 XBOX Live 之 XSAPI C API 層的簡介，涵蓋記憶體配置回呼、執行緒控制和 libHttpClient。

2018 年 6 月，XSAPI 新增了 C API 層。C API 層解決了 C++ 和 WinRT API 層所發生的一些問題。

> **注意：**
> C API 目前只適用於使用 GDK 和 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 層非同步呼叫的呼叫模式](/zh-TW/services/xbox-services/fundamentals/xbox-services-api/live-flatc-async-patterns)。

## 移轉程式碼以使用 C XSAPI

XSAPI C API 可以在專案中與 XSAPI C++ API 一起使用，因此建議您一次移轉一個功能。

C API 和 C++ API 實際上只是共用核心周圍的精簡包裝函式，只是進入點不同，因此功能應該不變。

不過，只有 C API 可以利用自訂記憶體和執行緒管理功能。

> **重要：**
> 您不能將 XSAPI WinRT API 與 C API 混合使用。

## 實用資源

* [使用 XSAPI C API 的範例](https://github.com/Microsoft/xbox-live-samples)
* [libHttpClient GitHub 存放庫](https://github.com/Microsoft/libHttpClient)
* 若要檢視 C API，請參閱 XSAPI C 標頭檔。它位於 GDK 所包含的 XBOX 服務 SDK 中。

## 另請參閱

[XSAPI C 參考](/zh-TW/reference/live/xsapi-c/atoc-xsapi-c)

[REST API 參考](/zh-TW/reference/live/rest/atoc-xboxlivews-reference)

[HttpClient 參考](/zh-TW/reference/live/httpclient/atoc-httpclient)


## Related topics

- [WinHTTP 概觀](/zh-TW/build/console-features/networking/web-requests/intro-winhttp.md)
- [隱私權和權限概觀](/zh-TW/services/xbox-services/fundamentals/identity/privacy/live-privacy-overview.md)
- [概觀](/zh-TW/services/xbox-services/multiplayer/overviews/index.md)
- [XBOX 服務 API 概觀](/zh-TW/services/xbox-services/fundamentals/xbox-services-api/live-introduction-to-xbox-live-apis.md)
- [XBOX 服務概觀](/zh-TW/services/xbox-services/fundamentals/live-xbl-overview.md)
