Поделиться через


Использование 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), который содержит информацию по следующим темам: