开发服务器

为分布式应用程序创建服务器程序时,必须使用 MIDL 编译器生成的头文件和服务器存根。 有关详细信息,请参阅 开发接口。 在服务器 C 程序文件中包括头文件。 请将服务器存根与组成应用程序的 C 源文件一起编译。 将生成的对象文件与导入库链接在一起。 下图演示了此过程。

为分布式应用程序过程

如图所示,使用名为 MyApp.idl 的 MIDL 文件来定义接口。 MIDL 编译器使用 MyApp.idl 生成 MyApp_s.c 和 MyApp.h。 它还为客户端存根生成 C 源文件,但这与此特定讨论无关。 服务器程序的 C 源文件(在本例中,Mysrvr.c)必须包含 Myapp.h 文件。 它还需要包括 Rpc.h 和 Rpcndr.h 文件。

服务器应用程序是在两个文件 Mysrvr.c 和 Rprocs.c 中开发的。 Mysrvr.c 文件包含启动和运行服务器程序所需的函数。 服务器程序提供的远程过程包含在文件 Rprocs.c 中。

Mysrvr.c 和 Rprocs.c 文件与 Myapp_s.c 一起编译,以生成对象文件。 然后,将对象文件与 RPC 运行时库及任何其他可能需要的库进行链接。 结果是名为 Mysrvr.exe的可执行服务器程序。

如果不在 Open Software Foundation (OSF) 兼容模式下编译 IDL 文件(/osf),则服务器程序必须提供用于分配内存的函数和用于解除分配它的函数。 对于 Windows 2000 及更高版本的 Windows,建议的模式 /Oicf。 有关详细信息,请参阅 如何分配和解除分配内存,以及 指针和内存分配