Компиляция MIDL-файла

Компилятор MIDL – это утилита командной строки, которая автоматически устанавливается вместе с Комплектом Разработчика для платформы Windows (Platform SDK) или поставляется вместе со средой разработки приложений Microsoft Visual Studio. Компилятор MIDL вызывается из командной строки набором команды midl и именем MIDL-файла. Убедитесь что каталог, содержащий компилятор MIDL, включен в пути поиска. Вот пример использования:

midl MyApp.idl

Вы также можете указывать ключи опций запуска. Так, например, чтобы явно указать расположение файла конфигурации приложения (ACF), можно использовать следующий вид команды:

midl /acf MyApp.acf MyApp.idl

Разрабатываем приложение-сервер

Чтобы создать сервер распределенного приложения, вам необходимо использовать файл заголовка и серверную заглушку, которые генерирует компилятор MIDL. Используйте файл заголовка в исходных кодах серверного приложения. Скомпилируйте серверную заглушку вместе с исходными файлами вашего приложения. Произведите компоновку результирующих объектных файлов с библиотеками импорта. Весь этот процесс отражен на следующей диаграмме:

Как можно видеть из приведенного выше рисунка, MIDL-файл MyApp.idl был использован для того, чтобы определить интерфейс. Компилятор MIDL, используя MyApp.idl, создал MyApp_s.c и MyApp.h. Он также создал файл клиентской заглушки, но в данный момент это пока не рассматривается. Исходный код серверной программы (в нашем случае – это MySrvr.c) должен подключать файл MyApp.h. Также нужно подключать файлы rpc.h и rpcndr.h.

Серверное приложение состоит их двух исходных файлов: MySrvr.c и RProcs.c. Файл MySrvr.c содержит функции, необходимые для запуска программы. А реализация удаленных процедур, предлагаемых сервером, содержится в файле RProcs.c.

Все три файла MySrvr.c, RProcs.c и MyApp.c были скомпилированы, в результате чело были получены объектные файлы. Эти объектные файлы были затем скомпонованы вместе с библиотекой времени выполнения (Run-time) RPC и другими необходимыми приложению библиотеками. В результате получили исполнимый файл сервера MySrvr.exe.

Если при компиляции вашего IDL файла не был указан совместимости с OSF (Open Software Foundation) /osf, то вам необходимо обеспечить функции для выделения и освобождения памяти.

Разрабатываем приложение-клиент

Разработка клиентского приложения RPC во многом похожа на разработку серверной программы. Точно также как и при разработке сервера, клиентское приложение должно использовать файл заголовка, который создает компилятор MIDL. Компилятор MIDL также создает файл клиентской заглушки на языке C. Вы должны скомпилировать этот файл и скомпоновать вместе с вашим клиентским приложением. Весь этот процесс отражен на следующей диаграмме:

Вначале необходимо определить интерфейс в файле MyApp.idl. Компилятор MIDL, используя MyApp.idl, создал MyApp_c.c – код клиентской заглушки и MyApp.h. Исходный код клиентской программы (в нашем случае – это MyClnt.c) должен подключать файл MyApp.h. Также нужно подключать файлы rpc.h и rpcndr.h.

Если при компиляции вашего IDL файла не был указан совместимости с OSF (Open Software Foundation) /osf, то вам необходимо обеспечить функции для выделения и освобождения памяти.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: