Desarrollo del servidor
Al crear un programa de servidor para una aplicación distribuida, debe usar el archivo de encabezado y el código auxiliar del servidor que genera el compilador MIDL. Para obtener más información, consulte Desarrollo de la interfaz. Incluya el archivo de encabezado en el archivo de programa C del servidor. Compile el código auxiliar del servidor con los archivos de código fuente de C que componen la aplicación. Vincule los archivos de objeto resultantes junto con la biblioteca de importación. Este proceso se muestra en el diagrama siguiente.
Como puede ver en el ejemplo de la ilustración, se usó un archivo MIDL denominado MyApp.idl para definir la interfaz. El compilador MIDL usó MyApp.idl para generar MyApp_s.c y MyApp.h. También genera un archivo de origen de C para el código auxiliar del cliente, pero eso no es relevante para esta explicación en particular. El archivo de origen de C para el programa de servidor (en este caso, Mysrvr.c) debe incluir el archivo Myapp.h. También tendrá que incluir los archivos Rpc.h y Rpcndr.h.
La aplicación de servidor se desarrolló en dos archivos, Mysrvr.c y Rprocs.c. El archivo Mysrvr.c contiene las funciones necesarias para poner el programa de servidor en funcionamiento. Los procedimientos remotos que ofrece el programa de servidor se encuentran en el archivo Rprocs.c.
Los archivos Mysrvr.c y Rprocs.c se compilaron junto con Myapp_s.c para generar archivos de objeto. A continuación, los archivos de objeto se vincularon con la biblioteca en tiempo de ejecución rpc y cualquier otra biblioteca que necesiten. El resultado es un programa de servidor ejecutable denominado Mysrvr.exe.
Si no compila el archivo IDL en el modo de compatibilidad de Open Software Foundation (OSF), el programa de servidor debe proporcionar una función para asignar memoria y una función para desasignarla. Para Windows 2000 y versiones posteriores de Windows, el modo recomendado es /Oicf. Para obtener más información, consulte Cómo se asigna y desasigna la memoria, así como punteros y asignación de memoria.