如何:从 Visual Basic 引用 COM 对象

在 Visual Basic 中,添加对具有类型库的 COM 对象的引用需要为 COM 库创建互作程序集。 对 COM 对象成员的引用将被路由到互操作程序集,然后再转发到实际的 COM 对象。 COM 对象的响应将路由到互作程序集,并转发到 .NET Framework 应用程序。

可以通过在 .NET 程序集中嵌入 COM 对象的类型信息来引用 COM 对象,而无需使用互作程序集。 若要嵌入类型信息,请将 Embed Interop Types 属性设置为 True 对 COM 对象的引用。 如果使用命令行编译器进行编译,请使用选项 /link 引用 COM 库。 有关详细信息,请参阅 -link (Visual Basic)。

从集成开发环境(IDE)添加对类型库的引用时,Visual Basic 会自动创建互作程序集。 从命令行工作时,可以使用 Tlbimp 实用工具手动创建互作程序集。

添加对 COM 对象的引用

  1. “项目 ”菜单上,选择 “添加引用 ”,然后单击对话框中的 “COM ”选项卡。

  2. 从 COM 对象列表中选择要使用的组件。

  3. 若要简化对互作程序集的访问,请将语句 Imports 添加到将使用 COM 对象的类或模块顶部。 例如,下面的代码示例从INKEDLib库导入Microsoft InkEdit Control 1.0命名空间,以引用其中的对象。

    
    Class Sample
        'Private s As IInkCursor
    
    End Class
    

使用 Tlbimp 创建互操作程序集

  1. 如果 Tlbimp 还不是搜索路径的一部分,并且你当前不在其所在的目录中,请将其位置添加到搜索路径。

  2. 从命令提示符调用 Tlbimp,并提供以下信息:

    • 包含类型库的 DLL 的名称和位置

    • 应放置信息的命名空间的名称和位置

    • 目标互操作程序集的名称和位置

    以下代码提供了一个示例:

    Tlbimp test3.dll /out:NameSpace1 /out:Interop1.dll  
    

    可以使用 Tlbimp 为类型库创建互作程序集,即使对于未注册的 COM 对象也是如此。 但是,互操作程序集引用的 COM 对象必须在要使用的计算机上正确注册。 可以使用 Windows作系统随附的 Regsvr32 实用工具注册 COM 对象。

另请参阅