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:
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 |
|