在本文中,将探讨如何手动创建一个COM DLL,并将其注册到Windows系统中。这个过程比使用Visual Studio 2005的向导要复杂得多,但对于那些想要深入了解COM DLL创建过程的开发者来说,这是一个宝贵的学习机会。
首先,需要在Visual Studio 2005中创建一个新的Visual Basic.NET类库项目。请严格按照以下步骤操作,以确保项目能够成功创建。
Visual Studio在创建项目时会自动添加一个名为“Class1”的类。首先需要将这个类重命名为更有意义的名称,例如“MyCalculator”。
在编程类之后,需要使类COM互操作。首先,需要导入System.Runtime.InteropServices命名空间,以获取必要的互操作属性。
Imports System.Runtime.InteropServices
接下来,需要为类定义一个接口,因为这是COM客户端与COM对象通信的方式。将为类添加
<ClassInterface(ClassInterfaceType.AutoDual)> _
Public Class MyCalculator
<ComVisible(True)> _
Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
还需要为类添加一个GUID,这是一个128位的数字,用于在注册表中标识COM类型。
<Guid("YOUR-GUID-HERE")> _
Public Class MyCalculator
' ...
End Class
最后,需要为程序集定义一个强名称,并将其安装到全局程序集缓存(GAC)中。
在属性窗口中,点击编译标签页,然后勾选“注册为COM互操作”。
现在已经创建了一个可以在VB6中使用的COM DLL。让看看如何在VB6中使用它。
Private Sub Command1_Click()
Dim calc As New MyCalculator
Dim result As Integer
result = calc.Add(5, 5)
MsgBox result
End Sub
要测试新的COM DLL,请运行VB6应用程序(F8或调试菜单 | 步入)。点击表单上的按钮。
gacutil –u MyComDll.dll