使用 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 文件,并像往常一样分析这些语句。 通常,这意味着为 RPC 应用程序生成 C 语言存根。

有关 ODL 文件的一般语法的详细信息,请参阅 ODL 文件语法