导入库转换
更新: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。