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


Создание библиотеки типов с помощью MIDL

Элемент верхнего уровня синтаксиса ODL — это инструкция library (блок библиотеки). Все остальные инструкции ODL, за исключением атрибутов, применяемых к инструкции library, должны быть определены в блоке библиотеки. Когда компилятор MIDL видит блок библиотеки, он создает библиотеку типов так же, как это делает MkTypLib. За некоторыми исключениями, описанными в разделе Различия между MIDL и MKTYPLIB, операторы в блоке библиотеки должны следовать тому же синтаксису, что и в языке ODL и MkTypLib.

Примечание

Средство Mktyplib.exe устарело. Вместо этого используйте компилятор MIDL.

 

Атрибуты ODL можно применять к элементам, определенным внутри или за пределами блока библиотеки. Эти атрибуты не оказывают никакого влияния за пределами блока библиотеки, если только элемент, к который они применяются, не ссылается из блока библиотеки. Инструкции внутри блока библиотеки могут ссылаться на внешний элемент, используя его в качестве базового типа, наследуя от него, или ссылаясь на него в строке, как показано ниже:

<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
    interface IFace;
    struct this_struct;
...
};

Если в блоке библиотеки указана ссылка на элемент, определенный вне блока библиотеки, его определение будет помещено в созданную библиотеку типов. Компилятор MIDL обрабатывает инструкции за пределами блока библиотеки как типичный IDL-файл и анализирует эти инструкции, как это всегда делало. Обычно это означает создание заглушки языка C для приложения RPC.

Дополнительные сведения об общем синтаксисе ODL-файла см. в разделе Синтаксис файла ODL.