演练:使用 Visual Basic 2005 创建 COM 对象

演练:使用 Visual Basic 2005 创建 COM 对象

 

创建新的应用程序或组件时,最好创建 .NET Framework 程序集。但使用 Visual Basic 2005 也易于将 .NET Framework 组件公开到 COM。这使您可以为需要 COM 组件的旧式应用程序提供新组件。本演练演示如何使用 Visual Basic 将 .NET Framework 对象作为 COM 对象公开,包括使用和不使用 COM 类模板。

公开 COM 对象的最简单的途径是使用 COM 类模板。COM 类模板创建一个新类,然后配置您的项目以生成作为 COM 对象的类和操作性层并在操作系统注册。

Note注意

尽管可以将使用 Visual Basic 创建的类作为 COM 对象公开以供非托管代码使用,但它并非真正的 COM 对象,且不能供 Visual Basic 使用。有关更多信息,请参见 .NET Framework 应用程序中的 COM 互操作性

Note注意

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

使用 COM 类模板创建 COM 对象

  1. 在“文件”菜单中单击“新建项目”,以打开新的 Windows 应用程序项目。

  2. 在“项目类型”字段下的“新建项目”对话框中,检查是否已选定 Windows。从“模板”列表中选择“类库”,再单击“确定”。将显示新项目。

  3. 从“项目”菜单中选择“添加新项”。显示“添加新项”对话框。

  4. 从“模板”列表中选择“COM 类”,再单击“添加”。Visual Basic 添加一个新类,并为 COM Interop 配置新项目。

  5. 将代码(如属性、方法和事件)添加到 COM 类。

  6. 从“生成”菜单中选择“生成 ClassLibrary1”。Visual Basic 生成程序集,并在操作系统注册 COM 对象。

可以手动创建一个 COM 类,而不使用 COM 类模板。当从命令行工作或想要更好地控制如何定义 COM 对象时,该过程较有帮助。

设置项目以生成 COM 对象

  1. 在“文件”菜单中,单击“新建项目”,以打开新的 Windows 应用程序项目。

  2. 在“项目类型”字段下的“新建项目”对话框中,检查是否已选定 Windows。从“模板”列表中选择“类库”,再单击“确定”。将显示新项目。

  3. 在“解决方案资源管理器”中,右击您的项目,然后单击“属性”。将显示“项目设计器”。

  4. 单击“编译”选项卡。

  5. 选中“为 COM Interop 注册”复选框。

在您的类中设置代码以创建 COM 对象

  1. 在“解决方案资源管理器”中,双击“Class1.vb”,以显示其代码。

  2. 将该类重命名为 ComClass1

  3. 将下列常数添加到 ComClass1。它们将存储 COM 对象必须有的全局唯一标识符 (GUID) 常数。

    Visual Basic
    Public Const ClassId As String = ""
    Public Const InterfaceId As String = ""
    Public Const EventsId As String = ""
    
  4. 若要获取全局唯一标识符 (GUID),请启动 Guidgen.exe 以启动 Guidgen 实用工具。从 Guidgen 应用程序提供的格式列表中选择“注册表格式”。单击“新建 GUID”按钮以生成 GUID,再单击“复制”按钮将该 GUID 复制到剪贴板。

  5. 用 GUID 替换 ClassId 的空字符串,移除前导大括号和尾随大括号。例如,如果 Guidgen 提供的 GUID 为 "{2C8B0AEE-02C9-486e-B809-C780A11530FE}",则代码应如下所示。

    Visual Basic
    Public Const ClassId As String = "2C8B0AEE-02C9-486e-B809-C780A11530FE"
    
  6. InterfaceIdEventsId 常数重复上面的步骤,如下例所示。

    Visual Basic
    Public Const InterfaceId As String = "3D8B5BA4-FB8C-5ff8-8468-11BF6BD5CF91"
    Public Const EventsId As String = "2B691787-6ED7-401e-90A4-B3B9C0360E31"
    
    Note注意

    请确定 GUID 是新的和唯一的,否则您的 COM 组件可能与其他 COM 组件冲突。

  7. ComClass 属性添加到 ComClass1,为类 ID、接口 ID 和事件 ID 指定 GUID,如下面的示例所示:

    Visual Basic
    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
    Public Class ComClass1
    
  8. COM 类必须具有一个无参数的 Public Sub New() 构造函数,否则该类无法正确注册。向该类中添加一个无参数构造函数:

    Visual Basic
    Public Sub New()
        MyBase.New()
    End Sub
    
  9. 将属性、方法和事件添加到该类,并以 End Class 语句结束它。从“生成”菜单中选择“生成解决方案”。Visual Basic 生成此程序集并在操作系统注册此 COM 对象。

    Note注意

    其他 Visual Basic 2005 应用程序不能使用您用 Visual Basic 2005 生成的 COM 对象,因为它们不是真正的 COM 对象。试图将引用添加到此类 COM 对象会引发错误。有关详细信息,请参见 .NET Framework 应用程序中的 COM 互操作性

     

     

    引用:http://msdn.microsoft.com/zh-cn/library/x66s8zcd(VS.80).aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值