midl_user_free 函数

midl_user_free函数必须由 RPC 开发人员提供。 它释放 midl_user_allocate 为 RPC 存根和库例程分配的内存。 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 内存管理包