65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 VS 2005 创建 COM DLL:演练

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (16投票s)

2008年8月14日

CPOL

4分钟阅读

viewsIcon

99495

downloadIcon

2710

本文演示了如何在 VS2005 中创建 COM DLL。

引言

本文演示了如何以简单的方式在 Visual Studio 2005 中创建 COM DLL。

要了解如何注册您的 COM DLL,请参阅我的文章 "使用 VS 2005 注册 COM DLL 演练"

背景

作为一家印刷公司唯一的开发人员,我有幸维护我的前辈编写的许多 VB6 程序。时不时地,我不得不对这些程序进行更改 - 例如添加电子邮件功能,或合并抑制列表,或数据库更新。

因为我非常喜欢 VB.NET,所以我不会再回到 VB6,也不会再使用过时的 VB 对象模型了。因此,我养成了一个习惯,就是使用 VS 2005 创建 COM DLL 来与这些应用程序一起使用。这样,我就可以使用强大的 .NET Framework 了! 这太棒了!

当我开始开发 COM DLL 时,我看到了很多文章,它们会逐步指导您如何操作... 以困难的方式。 为什么? 我不知道。 但是,在反复阅读了几次之后,我发现了一种更简单的方法... 而且生活很美好! 那么,为什么不分享它呢?

这里有一个如何创建简单 COM DLL 的示例。 请查看附件以获取此示例,以及一个用于电子邮件的 COM DLL 库。

创建 COM DLL 项目

请注意,请仔细按照这些说明操作。 有些人(认为他们)已经仔细按照这些说明操作了,但发现他们的 COM DLL 无法正常工作。 事实证明,他们错过了一些东西。

首先,让我们创建一个新的 Visual Basic 类库。

  • 打开 Visual Studio 2005。
  • 单击“文件”菜单 | “新建” | “项目...”
  • 在“新建项目”窗口中,选择
    • “Visual Basic”作为项目类型。
    • “类库”作为模板。
    • 输入 "MyComDll" 作为名称。
    • 选中“为解决方案创建目录”。
    • 完成后单击“确定”按钮。

NewProjectWindow.jpg

修改 COM DLL 项目

现在我们已经创建了我们的 DLL,让我们看看 Visual Studio 自动做了什么。

  • 打开解决方案资源管理器(“查看”菜单 | “解决方案资源管理器”)。
  • 注意 "Class1.vb"。 Visual Studio 自动为我们添加了这个类。

让我们删除 "Class1.vb"

  • 在解决方案资源管理器中右键单击 "Class1.vb",然后从菜单中选择“删除”。
    • 出现提示时,选择“确定”以永久删除。

DeleteComDll.jpg

现在,我们可以添加一个 COM 类

  • 单击“项目”菜单 | “添加新项目...”
  • 在“添加新项目”窗口中,选择
    • “COM 类”模板。
    • 输入 "MyComClass" 作为名称。
    • 完成后单击“添加”按钮。

AddNewItem.jpg

当我们向 DLL 添加新的 COM 类时,Visual Studio 会自动执行一些操作

  • 选中“注册 COM 互操作”(“项目”菜单 | “属性” | “编译”选项卡)。
  • 创建 "MyComClass.vb" 代码文件并将其添加到项目中。
  • 在我们的新 MyComClass 代码窗口中插入所需的 COM GUID。
  • 向我们的新 MyComClass 代码窗口添加 "Sub New()"(无参数)。

它看起来是这样的

CodeWindow1.jpg

向 MyComClass 添加代码

现在我们已经创建了 COM 类,让我们添加一个 DisplayMessage() 子例程

Public Sub DisplayMessage()
    MsgBox("Hello from MyComClass!")
End Sub

添加完 DisplayMessage() 子例程后,保存生成项目。

在 VB6 中使用我们的新 COM DLL

我们现在有一个可用的 COM DLL,可以在 VB6 中使用。 让我们进入 VB6 并看看如何使用它。

创建一个新的 VB6 项目

  • 启动 VB6。
  • 当“新建项目”窗口打开时,选择“标准 EXE”。
  • 单击“打开”按钮。
  • Form 添加一个 Button,然后双击它以创建 Click() 事件,并打开代码窗口。

添加对我们新 COM DLL 的引用

  • 单击“项目”菜单 | “引用...”
  • 单击“浏览”按钮以打开“添加引用”窗口。
  • 导航到 Debug 文件夹 ("MyComDll\MyComDll\bin\Debug")。
  • 选择 MyComDll.tlb 文件(注意“.tlb” - 不是 ".dll")。
  • 单击“打开”按钮以关闭“添加引用”窗口。
  • 单击“确定”按钮以关闭“引用”窗口,并将我们新的 COM DLL 添加为引用。

最后,在我们的 Command Button 的 Click() 事件中,让我们添加代码来使用我们的 DLL

Private Sub Command1_Click()
    Dim mcc As New MyComClass
    mcc.DisplayMessage
End Sub

要测试我们的新 COM DLL

  • 运行 VB6 应用程序(F8 或“调试”菜单 | “单步进入”)。
  • 单击窗体上的按钮。

这是我们测试的结果:

VB6Test.jpg

结论

我已为您包含了 COM DLL 的源代码。如果您的新 COM DLL 无法正常工作,请查看我的源代码。

希望对您有所帮助!

© . All rights reserved.