midl_user_free 函数

RPC 开发人员必须提供 midl_user_free 函数。 它释放为 RPC 存根和库例程 midl_user_allocate 分配的内存。 midl_user_free 函数必须与以下原型匹配:

void __RPC_USER midl_user_free(void * pBuffer);

pBuffer 参数指定要释放的内存的指针。 客户端应用程序和服务器应用程序都必须实现 midl_user_free 函数,除非在 OSF 兼容性(/osf) 模式下进行编译。 midl_user_free 函数必须能够释放 midl_user_allocate分配的所有存储。

处理分配的对象时,应用程序和存根调用 midl_user_free

  • 服务器应用程序应调用 midl_user_free 来释放应用程序分配的内存,例如删除动态分配的数据节点时。
  • 服务器存根调用 midl_user_free 在封送所有 [out] 参数、[in]、[out] 参数和函数返回值后释放服务器上的内存。

例如,显示“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 内存管理包