MIDL を使用したタイプ ライブラリの生成

ODL 構文の最上位要素は、library ステートメント (ライブラリ ブロック) です。 他のすべての 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 ファイルとして扱い、これらのステートメントを常に行っているとおりに解析します。 通常、これは RPC アプリケーションの C 言語スタブを生成することを意味します。

ODL ファイルの一般的な構文の詳細については、「 ODL ファイルの構文」を参照してください。