开发客户端
开发 RPC 客户端程序类似于开发服务器程序。 有关开发 RPC 服务器程序的信息,请参阅 开发服务器。
与在服务器开发中一样,客户端程序必须包含 MIDL 编译器从 .idl 文件生成的头文件。 MIDL 编译器还会生成包含客户端存根的 C 源文件。 必须编译此 C 源文件并将其链接到客户端程序。 (此外,MIDL 编译器会生成包含服务器存根的 C 源文件,但这与本讨论无关。)
除了编译客户端存根并将其与程序文件链接外,还必须将导入库 (以及客户端程序需要) 的任何其他库链接到客户端程序。 下图演示了创建 RPC 客户端程序的过程。
上图中的示例演示了如何创建名为 MyClnt.exe 的 RPC 客户端程序。 第一步是在文件 MyApp.idl 中定义 接口。 MIDL 编译器使用 MyApp.idl 生成文件 MyApp_c.c,其中包含客户端存根。 它还生成客户端程序必须包含的文件 MyApp.h。 客户端程序还需要包含 RPC.h 和 RPCNDR.h 文件。
客户端程序本身是在文件 MyClnt.c 中创建的。 在实际项目中,客户端程序通常由多个 C 源文件组成。 它们都需要编译并链接在一起。 但是,为简单起见,此示例仅使用一个文件。
MyClnt.c 和 MyApp_c.c 文件与 RPC 运行时库以及客户端程序所需的任何其他库一起编译和链接。 结果是名为 MyClnt.exe 的可执行客户端程序。
如果不在 / osf) 的 OSF 兼容模式下编译 IDL 文件 (,则客户端程序必须提供用于分配内存的函数和用于解除分配内存的函数。 对于 Windows 2000 及更高版本,建议的模式为 /Oicf。 有关详细信息,请参阅 如何分配和解除分配内存以及 指针和内存分配。