midl_user_free函式
midl_user_free 函式必須由 RPC 開發人員提供。 它會釋放為 RPC 存根和連結庫例程配置 midl_user_allocate 所配置的記憶體。 您的 midl_user_free 函式必須符合下列原型:
void __RPC_USER midl_user_free(void * pBuffer);
pBuffer 參數會指定要釋放之內存的指標。 除非您是以OSF相容性 (/osf) 模式編譯,否則用戶端應用程式和伺服器應用程式都必須實作 midl_user_free 函式。 midl_user_free 函式必須能夠釋放由 midl_user_allocate配置的所有記憶體。
處理已設定物件時,應用程式和存根會呼叫 midl_user_free:
- 伺服器應用程式應該呼叫 midl_user_free,以釋放應用程式配置的記憶體,例如刪除動態配置的數據節點時。
- 伺服器存根會在封送處理所有 [out] 自變數 、[in]、[out] 自變數和函式傳回值之後,呼叫 midl_user_free 釋放伺服器上的記憶體。
例如,顯示 「Hello, world」 的 RPC Windows 範例程式會實作 C 函式免費 midl_user_free:
void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
free(p);
}
注意
如果已啟用 RpcSs 套件(例如,使用 [ enable_allocate] 屬性的結果),您的伺服器程式應該使用 RpcSmFree 來釋放記憶體。 如需詳細資訊,請參閱 RpcSs 記憶體管理套件。