4
3
2
'1、.Net创建对象会调用默认的构造函数New,VB6肯定不会,添加New函数试试 Public Class Demo Public Sub New() End Sub End Class '2.调用CreateInstance新建对象 Public Class Demo Public Shared Function CreateInstance() As Demo Return New Demo End Function End Class
'(1)VB.NET-->类库-->类-->确定 '(2)删除class1 '(3)添加新项-->COM 类 '命名comclass1-->myhello.vb ' <ComClass(myhello.ClassId, myhello.InterfaceId, myhello.EventsId)> _ Public Class myhello #Region "COM GUIDs" ' 这些 GUID 提供该类的 COM 标识及其 COM 接口。 ' 如果您更改它们,现有的客户端将再也无法 ' 访问该类。 Public Const ClassId As String = "B630F166-0717-4104-A9E0-FB30F0232490" Public Const InterfaceId As String = "2EF3C811-B545-4D54-BDA9-A50E84FB56BC" Public Const EventsId As String = "85978B3B-BD76-4602-A7A8-E906746BD04D" #End Region ' 可创建的 COM 类必须具有不带参数的 ' Public Sub New(),否则,该类将不会注册到 COM 注册表中, ' 而且不能通过 CreateObject ' 来创建。 Public Sub New() MyBase.New() End Sub Public Function SayHello() As String SayHello = "Hello Word!" End Function End Class '(4)生成demo '(5)使用.net的工具 Visual Studio .Net 2003 Command Prompt,输入以下命令 ' Regasm Demo.dll(注意路径) /tlb:Demo.tlb(注意路径)
'引用Demo.tlb Private Sub Form_Load() Dim objHello As New demo.myhello Dim msg$ msg = objHello.SayHello() MsgBox msg, 64, "应用.NET DLL" Set objHello = Nothing End Sub