可移植性宏

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

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

Diagram showing the macro definitions MIDL applies to function calls.

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