Compartir a través de


Macros de portabilidad

Las herramientas rpc logran la independencia del modelo, la llamada y la convención de nomenclatura asociando tipos de datos y tipos de valor devuelto de función en los archivos de código auxiliar generados y los archivos de encabezado con definiciones específicas de cada plataforma. Estas definiciones de macros garantizan que todos los tipos de datos y funciones que requieran la designación de __far se especifiquen como objetos lejanos.

En la ilustración siguiente se muestran las definiciones de macro que el compilador MIDL aplica a las llamadas de función entre componentes RPC:

Diagrama que muestra las definiciones de macro MIDL se aplica a las llamadas de función.

Las macros RPC se definen de la siguiente manera.

Definición Descripción
__RPC_API Se aplica a las llamadas realizadas por el código auxiliar a la aplicación de usuario. Ambas funciones están en el mismo programa ejecutable.
__RPC_FAR Se aplica a la definición de macro estándar para punteros. Esta definición de macro debe aparecer como parte de la firma de todas las funciones proporcionadas por el usuario.
__RPC_STUB Se aplica a las llamadas realizadas desde la biblioteca en tiempo de ejecución al código auxiliar. Estas llamadas se pueden considerar privadas.
__RPC_USER Se aplica a las llamadas realizadas por la biblioteca en tiempo de ejecución a la aplicación de usuario. Estos cruzan el límite entre un archivo DLL y una aplicación.
RPC_ENTRY Se aplica a las llamadas realizadas por la aplicación o el código auxiliar a la biblioteca en tiempo de ejecución. Esta definición de macro se aplica a todas las funciones en tiempo de ejecución rpc.

Para vincularse correctamente con las bibliotecas en tiempo de ejecución, los códigos auxiliares y las rutinas de soporte técnico de Microsoft RPC, algunas funciones proporcionadas por el usuario también deben incluir estas macros en la definición de función. Use la macro __RPC_API al definir las funciones asociadas a la administración de memoria, los identificadores de enlace definidos por el usuario y el atributo transmit_as y use la macro __RPC_USER al definir la rutina de ejecución de contexto asociada al identificador de contexto. Especifique las funciones como:

__RPC_USER midl_user_allocate(...)

__RPC_USER midl_user_free(...)

__RPC_USER handletype_bind(...)

__RPC_USER handletype_unbind(...)

__RPC_USER tipo_to_local

__RPC_USER tipo_from_local

__RPC_USER type_to_xmit(...)

__RPC_USER tipo_from_xmit(...)

__RPC_USER tipo_free_local

__RPC_USER tipo_free_inst(...)

__RPC_USER tipo_free_xmit(...)

__RPC_USER context_rundown(...)

Nota

Todos los parámetros de puntero de estas funciones deben especificarse mediante la macro __RPC_FAR.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Rpc.h