可移植性宏

RPC 工具通过将生成的存根文件和头文件中的数据类型和函数返回类型与特定于每个平台的定义相关联来实现模型、调用和命名约定的独立性。 这些宏定义可确保需要指定 __far 的任何数据类型和函数指定为远对象。

下图显示了 MIDL 编译器应用于 RPC 组件之间的函数调用的宏定义:

显示宏定义 MIDL 应用于函数调用的关系图。

RPC 宏的定义如下。

定义 说明
__RPC_API 应用于存根对用户应用程序的调用。 这两个函数位于同一可执行程序中。
__RPC_FAR 应用于指针的标准宏定义。 此宏定义应显示为所有用户提供的函数签名的一部分。
__RPC_STUB 应用于从运行时库到存根的调用。 这些调用可视为专用调用。
__RPC_USER 应用于运行时库对用户应用程序进行的调用。 它们跨越 DLL 和应用程序之间的边界。
RPC_ENTRY 应用于应用程序或存根对运行时库进行的调用。 此宏定义应用于所有 RPC 运行时函数。

若要正确链接到 Microsoft RPC 运行时库、存根和支持例程,某些用户提供的函数还必须在函数定义中包含这些宏。 定义与内存管理、用户定义绑定句柄和 transmit_as 属性关联的函数时,请使用宏__RPC_API,并在定义与上下文句柄关联的上下文运行例程时使用宏__RPC_USER。 将函数指定为:

__RPC_USER midl_user_allocate (...)

__RPC_USER midl_user_free (...)

__RPC_USER handletype_bind (...)

__RPC_USER handletype_unbind (...)

__RPC_USER 类型_to_local

__RPC_USER 类型_from_local

__RPC_USER type_to_xmit (...)

__RPC_USER 类型_from_xmit (...)

__RPC_USER 类型_free_local

__RPC_USER 类型_free_inst (...)

__RPC_USER 类型_free_xmit (...)

__RPC_USER context_rundown (...)

注意

必须使用宏 __RPC_FAR指定这些函数中的所有指针参数。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Rpc.h