使用 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 文件语法