我有一个VB6 dll,我需要从.NET应用程序调用。我想在.net中的不同线程上的DLL的一个类中执行一个函数 - 也就是说,每个线程一个单独的DLL实例。使用单线程,一切都很好。但是对于多个线程,似乎只使用了一个dll实例。我应该注意该函数将几个ADODB记录集作为参数并返回一个整数。当我返回.net时,记录集已经更新。我还必须设置两个类参数。
Public Class MyClass
Public Function MyFunction(rs1 As Recordset, rs2 As Recordset) As Integer
'some work
End Function
End Class
Public Class NetClass
Public Sub DoIt()
Dim md As New MyDelegate(AddressOf WorkIt)
md.BeginInvode(rs1, rs2, Nothing, Nothing)
End Sub
Private Delegate Sub MyDelegate(ByVal rs1 As Recordset, ByVal rs2 As Recordset)
Private Sub WorkIt(ByVal rs1 As Recordset, ByVal rs2 As Recordset)
Dim ad As AppDomain = AppDomain.Create([a variable])
Dim obj As Object = ad.CreateComInstanceFrom("C:\Program Files\MyDll.dll", "MyDll.MyClass")
End Sub
End Class
在WorkIt()子句中,第二行产生错误“无法加载文件或程序集”文件:/// C:\ Program Files \ MyDll.dll'或其中一个依赖项。模块预计会包含一个程序集清单。
有人可以指出我正确的方向吗?
提前致谢!