具体的代码没有测试首先在.net中构造程序集 public class simpleclass Implements_simpleClass public function Getstring() as string Implements_simpleClass.Getstring return "test" end function 创建程序集vbc/t :library test.vb /keyfile:mykey.snk 需要提供一个强名称,这需要生成密钥文件直接注册程序集 regasm /tlb:test.tlb test.dll使用tlbexp test.dll/out:test.tlb仅仅生成类型库vb中引用,test.dll dim obj as SimpleClass set obj=new SimpleClass text1.text=obj.GetString()
创建程序集vbc/t :library test.vb /keyfile:mykey.snk 需要提供一个强名称,这需要生成密钥文件直接注册程序集 regasm /tlb:test.tlb test.dll使用tlbexp test.dll/out:test.tlb仅仅生成类型库这几句不是很明白,具体应该怎样创建一个COM组件并注册它呢?是否应在.Net 中创建一个COM类?我创建了一个COM类文件,如下:Imports Toll.T_Public Imports Toll.T_Common Imports toll.P_Public<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _ Public Class ComClass1#Region "COM GUIDs" ' 这些 GUID 提供该类的 COM 标识及其 COM 接口。 ' 如果您更改它们,现有的客户端将再也无法 ' 访问该类。 Public Const ClassId As String = "E6A15252-44ED-4128-A21D-49599780C34B" Public Const InterfaceId As String = "C0ADF550-9670-4240-B82A-1B8C4769F8BE" Public Const EventsId As String = "C1B389C1-02B7-4D40-8A06-6F6A9EAF7334" #End Region ' 可创建的 COM 类必须具有不带参数的 ' Public Sub New(),否则,该类将不会注册到 COM 注册表中, ' 而且不能通过 CreateObject ' 来创建。 Public Sub New() MyBase.New() End Sub Public Function TestFunction(ByVal str1 As String, ByVal str2 As String) As Boolean '代码 ......... ......... End FunctionEnd Class然后在该项目属性的“为COM Interop注册”前打勾,请问该操作是否正确,谢谢!
因为Dll的类型不一样。.net的dll既不是API,也不是Activex Dll。
那么注册引用使用即可
public class simpleclass
Implements_simpleClass
public function Getstring() as string Implements_simpleClass.Getstring
return "test"
end function
创建程序集vbc/t :library test.vb /keyfile:mykey.snk
需要提供一个强名称,这需要生成密钥文件直接注册程序集
regasm /tlb:test.tlb test.dll使用tlbexp test.dll/out:test.tlb仅仅生成类型库vb中引用,test.dll
dim obj as SimpleClass
set obj=new SimpleClass
text1.text=obj.GetString()
需要提供一个强名称,这需要生成密钥文件直接注册程序集
regasm /tlb:test.tlb test.dll使用tlbexp test.dll/out:test.tlb仅仅生成类型库这几句不是很明白,具体应该怎样创建一个COM组件并注册它呢?是否应在.Net
中创建一个COM类?我创建了一个COM类文件,如下:Imports Toll.T_Public
Imports Toll.T_Common
Imports toll.P_Public<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1#Region "COM GUIDs"
' 这些 GUID 提供该类的 COM 标识及其 COM 接口。
' 如果您更改它们,现有的客户端将再也无法
' 访问该类。
Public Const ClassId As String = "E6A15252-44ED-4128-A21D-49599780C34B"
Public Const InterfaceId As String = "C0ADF550-9670-4240-B82A-1B8C4769F8BE"
Public Const EventsId As String = "C1B389C1-02B7-4D40-8A06-6F6A9EAF7334"
#End Region ' 可创建的 COM 类必须具有不带参数的
' Public Sub New(),否则,该类将不会注册到 COM 注册表中,
' 而且不能通过 CreateObject
' 来创建。
Public Sub New()
MyBase.New()
End Sub Public Function TestFunction(ByVal str1 As String, ByVal str2 As String) As Boolean
'代码
.........
.........
End FunctionEnd Class然后在该项目属性的“为COM Interop注册”前打勾,请问该操作是否正确,谢谢!