指针和内存分配
若要通过指针更改内存,通常需要服务器和客户端为数组中的元素分配足够的内存。
当存根必须分配或释放内存时,它会调用运行时库函数,这些函数又 调用midl_user_allocate 和 midl_user_free函数。 这些函数不作为运行时库的一部分包含在内。 需要编写自己的这些函数版本,并将其与应用程序链接。 通过这种方式,你可以决定如何管理内存。 在 OSF 兼容性 (/osf) 模式下编译 IDL 文件时,无需实现这些函数。 必须将这些函数写入以下原型:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
例如,应用程序的这些函数版本只需调用标准库函数:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
{
return(malloc(len));
}
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
{
free(ptr);
}