如何:从 Visual Basic 中引用 COM 对象
在 Visual Basic 中,添加对具有类型库的 COM 对象的引用需要为 COM 库创建互操作程序集。 对 COM 对象成员的引用将被路由到互操作程序集,然后被转发到实际的 COM 对象。 来自 COM 对象的响应将被路由到互操作程序集,并转发到 .NET Framework 应用程序。
通过将 COM 对象的类型信息嵌入 .NET 程序集中,可以在不使用互操作程序集的情况下引用 COM 对象。 要嵌入类型信息,请将对 COM 对象的引用的 Embed Interop Types
属性设置为 True
。 如果使用命令行编译器进行编译,请使用 /link
选项来引用 COM 库。 有关详细信息,请参阅 -link (Visual Basic)。
从集成开发环境 (IDE) 添加对类型库的引用时,Visual Basic 会自动创建互操作程序集。 通过命令行工作时,可以使用 Tlbimp 实用工具手动创建互操作程序集。
添加对 COM 对象的引用
在“项目”菜单上,选择“添加引用”,然后单击对话框中的“COM”选项卡。
从 COM 对象列表中选择要使用的组件。
若要简化对互操作程序集的访问,请将
Imports
语句添加到要在其中使用 COM 对象的类或模块的顶部。 例如,下面的代码示例导入Microsoft InkEdit Control 1.0
库中引用的对象的命名空间INKEDLib
。Class Sample 'Private s As IInkCursor End Class
使用 Tlbimp 创建互操作程序集
如果 Tlbimp 还不是搜索路径的一部分,并且你当前不在其所在的目录中,请将其位置添加到搜索路径。
从命令提示符调用 Tlbimp,提供以下信息:
包含类型库的 DLL 的名称和位置
应放置信息的命名空间的名称和位置
目标互操作程序集的名称和位置
以下代码提供了一个示例:
Tlbimp test3.dll /out:NameSpace1 /out:Interop1.dll
可以使用 Tlbimp 为类型库创建互操作程序集,甚至为未注册的 COM 对象创建互操作程序集。 但是,互操作程序集引用的 COM 对象必须在要使用它们的计算机上正确注册。 可以使用 Windows 操作系统附带的 Regsvr32 实用程序来注册 COM 对象。