Использование MIDL
Все интерфейсы для программ с помощью RPC должны быть определены в языке определения интерфейса Майкрософт (MIDL) и компилируются с помощью компилятора MIDL. В следующих разделах представлен краткий обзор создания и компиляции интерфейса MIDL:
Подробные сведения об этих разделах см. в разделе файлы IDL и ACF.
Определение интерфейса с помощью MIDL
ФАЙЛЫ MIDL — это текстовые файлы, которые можно создавать и изменять с помощью текстового редактора. Если вы создаете идентификатор UUID для интерфейса, обычно вы будете хранить выходные данные в файле MIDL шаблона. Дополнительные сведения об UUID см. в Генерация интерфейсных UUID.
Все интерфейсы в MIDL соответствуют одному и тому же формату. Они начинаются с заголовка, содержащего список атрибутов интерфейса и имя интерфейса. Атрибуты заключены в квадратные скобки. За заголовком интерфейса следует его тело, которое заключено в фигурные скобки. Простой интерфейс показан в следующем примере:
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0)
]
interface MyInterface
{
const unsigned short INT_ARRAY_LEN = 100;
void MyRemoteProc(
[in] int param1,
[out] int outArray[INT_ARRAY_LEN]
);
}
Некоторые атрибуты, которые обычно отображаются в определении интерфейса MIDL, являются идентификатором UUID и номером версии интерфейса. Текст определения интерфейса должен содержать объявления процедуры всех удаленных процедур в интерфейсе. Он также может содержать объявления типов данных и констант, необходимых интерфейсу.
Все параметры в объявлениях удаленной процедуры должны быть объявлены как [в], [out], или [в, out]. Эти объявления указывают, что клиентская программа передает данные в удаленную процедуру, получает данные из удаленной процедуры или обоих. Дополнительные сведения о объявлениях параметров интерфейса см. в разделе Текст интерфейса IDL.
Компиляция MIDL-файла
Компилятор MIDL — это средство командной строки, которое автоматически устанавливается с помощью пакета SDK для платформы. Вызовите его в командной строке, введя команду midl, а затем имя MIDL-файла. Убедитесь, что каталог, содержащий компилятор MIDL, добавлен в PATH. В следующем примере показано его использование:
midl MyApp.idl
Обратите внимание, что не нужно включать расширение, если имя файла имеет расширение IDL. Можно также использовать параметры командной строки компилятора MIDL , вставив их между командой midl и именем файла. Это показано в следующем примере:
midl /acf MyApp.acf MyApp.idl
В этом примере компилятор MIDL выполняется с помощью файла MyApp.idl в качестве входного файла. Параметр командной строки /acf указывает компилятору использовать файл конфигурации приложения (ACF) для входных данных. Файлы конфигурации приложений подробно рассматриваются в файлах IDL и ACF.
Дополнительные сведения об использовании компилятора MIDL см. в языке определения интерфейса Майкрософт (MIDL), который содержит информацию по следующим темам:
- Требования C-Preprocessor для MIDL
- Особенности компилятора C/C++
- файлы, созданные для интерфейса RPC
- Справочник по командной строке MIDL
- Справочник по языку MIDL
- ошибки и предупреждения компилятора MIDL