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


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

Элемент верхнего уровня синтаксиса ODL — это инструкция библиотеки (блок библиотеки). Каждая другая инструкция ODL, за исключением атрибутов, применяемых к инструкции библиотеки, должна быть определена в блоке библиотеки. Когда компилятор 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 File Syntax.