Entwickeln des Servers
Wenn Sie ein Serverprogramm für eine verteilte Anwendung erstellen, müssen Sie die Headerdatei und den Serverstub verwenden, die der MIDL-Compiler generiert. Weitere Informationen finden Sie unter Entwickeln der Schnittstelle. Schließen Sie die Headerdatei in die C-Programmdatei Ihres Servers ein. Kompilieren Sie den Serverstub mit den C-Quelldateien, aus denen ihre Anwendung besteht. Verknüpfen Sie die resultierenden Objektdateien mit der Importbibliothek. Dieser Vorgang wird im folgenden Diagramm veranschaulicht.

Wie Sie im Beispiel in der Abbildung sehen können, wurde eine MIDL-Datei mit dem Namen MyApp.idl verwendet, um die Schnittstelle zu definieren. Der MIDL-Compiler hat MyApp.idl verwendet, um MyApp _ s.c und MyApp.h zu erstellen. Außerdem wird eine C-Quelldatei für den Clientstub erzeugt, aber dies ist für diese spezielle Diskussion nicht relevant. Die C-Quelldatei für das Serverprogramm (in diesem Fall Mysrvr.c) muss die Datei Myapp.h enthalten. Außerdem müssen die Dateien Rpc.h und Rpcndr.h eingeschlossen werden.
Die Serveranwendung wurde in zwei Dateien entwickelt: Mysrvr.c und Rprocs.c. Die Datei Mysrvr.c enthält die Funktionen, die zum Einrichten und Ausführen des Serverprogramms erforderlich sind. Die Remoteprozeduren, die das Serverprogramm bietet, sind in der Datei Rprocs.c enthalten.
Die Dateien Mysrvr.c und Rprocs.c wurden zusammen mit Myapp _ s.c kompiliert, um Objektdateien zu erstellen. Die Objektdateien wurden dann mit der RPC-Laufzeitbibliothek und allen anderen Bibliotheken verknüpft, die sie möglicherweise benötigen. Das Ergebnis ist ein ausführbares Serverprogramm mit dem Namen Mysrvr.exe.
Wenn Sie Ihre IDL-Datei nicht im OSF-Kompatibilitätsmodus (Open Software Foundation) kompilieren (/osf),muss Ihr Serverprogramm eine Funktion zum Zuordnen von Arbeitsspeicher und eine Funktion für die Zuordnung bereitstellen. Für Windows 2000 und höhere Versionen von Windows wird der Modus /Oicfempfohlen. Weitere Informationen finden Sie unter How Memory Is Allocated and Deallocated, und Pointers and Memory Allocation.