Разработка сервера
При создании серверной программы для распределенного приложения необходимо использовать заголовочный файл и заглушку сервера, которые генерирует компилятор MIDL. Для подробностей см. Разработка интерфейса. Включите файл заголовка в файл программы C сервера. Скомпилируйте заглушку сервера с исходными файлами C, создающими приложение. Свяжите полученные файлы объектов вместе с библиотекой импорта. Этот процесс показан на следующей схеме.
Как видно из примера на рисунке, для определения интерфейса использовался MIDL-файл с именем MyApp.idl. Компилятор 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.
Если файл IDL не компилируется в режиме совместимости Open Software Foundation (OSF) (/osf), программа сервера должна предоставить функцию для выделения памяти и функции для его освобождения. Для Windows 2000 и более поздних версий Windows рекомендуется /Oicf. Дополнительные сведения см. в разделе Выделение и освобождение памяти, а также Указатели и выделение памяти.