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


Использование MIDL

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

Подробное обсуждение этих тем см. в разделе Файлы IDL и ACF.

Определение интерфейса с помощью MIDL

ФАЙЛЫ MIDL — это текстовые файлы, которые можно создавать и редактировать с помощью текстового редактора. При создании UUID для интерфейса выходные данные обычно сохраняются в файле MIDL шаблона. Дополнительные сведения о 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 и номер версии интерфейса. Текст определения интерфейса должен содержать объявления всех удаленных процедур в интерфейсе. Он также может содержать объявления типов данных и констант, необходимых интерфейсу .

Все параметры в объявлениях удаленных процедур должны быть объявлены как [in], [out] или [in, out]. Эти объявления указывают, что клиентская программа передает данные в удаленную процедуру, получает данные из удаленной процедуры или и то, и другое. Дополнительные сведения о объявлениях параметров интерфейса см. в разделе Текст интерфейса IDL.

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

Компилятор MIDL — это программа командной строки, которая автоматически устанавливается вместе с пакетом средств разработки платформенного программного обеспечения (SDK). Вызовите его в командном окне, введя в командной строке команду midl, а затем имя файла MIDL. Убедитесь, что каталог, содержащий компилятор MIDL, находится в вашем пути. В следующем примере показано его использование:

midl MyApp.idl

Обратите внимание, что не нужно включать расширение , если имя файла имеет расширение IDL. Вы также можете использовать параметры командной строки компилятора MIDL, вставив их между командой midl и именем файла. Это показано в следующем примере:

midl /acf MyApp.acf MyApp.idl

В этом примере компилятор MIDL выполняется с помощью файла MyApp.idl в качестве входного файла. Параметр командной строки /acf указывает компилятору также использовать файл конфигурации приложения (ACF) для ввода. Файлы конфигурации приложения более подробно рассматриваются в разделе Файлы IDL и ACF.

Дополнительные сведения об использовании компилятора MIDL см. в разделе Язык определения интерфейса Майкрософт (MIDL), который содержит сведения по следующим темам: