导入库转换

更新:2007 年 11 月

当导入过程转换类型库时,它会自动将库中定义的类型放入与类型库同名的命名空间。例如,如果对以下类型库运行 Tlbimp.exe,实用工具会将 AcmeLib 类型库中定义的所有类型导入到 AcmeLib 命名空间中。

类型库表示形式

library AcmeLib {
    interface Widget {};
    coclass Slingshot {};
};

转换之后,可以使用 AcmeLib.Slingshot 从托管应用程序调用 Slingshot 类。

Namespace AcmeLib
    Interface Widget
    End Interface
   
    Class Slingshot
    End Class
End Namespace
namespace AcmeLib {
    interface Widget {};
    class Slingshot {};
};

您可以使用类型库属性来显式控制类型库导入过程的命名空间。由于类型库名称不能包含句点,这是唯一可用来将类型导入句点分隔命名空间的方法。此属性的标识符为 0F21F359-AB84-41e8-9A78-36D110E6D2F9。以下类型库表示形式将显示如何添加此用户定义的属性。

类型库表示形式

[
    uuid(…),
    version(1.0),
    custom(0F21F359-AB84-41e8-9A78-36D110E6D2F9, "Acme.WidgetLib")
]
library AcmeLib {
    interface Widget {};
    coclass Slingshot {};
};

通过使用用户定义的属性,可以强制 Tlbimp.exe 将 AcmeLib 类型库导入 Acme.WidgetLib 命名空间。Slingshot 类将成为托管代码中的 Acme.WidgetLib.Slingshot。

请参见

概念

导入模块转换

导入类型转换

导入成员转换

导入参数转换

其他资源

有关从类型库转换到程序集的摘要