Использование MIDL
Все интерфейсы для программ, использующих RPC, должны быть определены на языке MIDL и скомпилированы с помощью компилятора MIDL. В следующих разделах представлен краткий обзор создания и компиляции интерфейса MIDL.
Подробное обсуждение этих тем см. в разделе Файлы IDL и ACF.
ФАЙЛЫ 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 — это программа командной строки, которая автоматически устанавливается вместе с пакетом средств разработки платформенного программного обеспечения (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), который содержит сведения по следующим темам:
- Требования к препроцессору C для MIDL
- Рекомендации по компилятору C/C++
- Файлы, созданные для интерфейса RPC
- Справочник по командной строке MIDL
- Справочник по языку MIDL
- Ошибки и предупреждения компилятора MIDL