我有一个需要从VB6 dll调用例程的.NET程序集。 .NET程序集的例程,用于其他.NET代码将返回对象列表。但是这对VB6不起作用。所以我使用Interop来创建一个“vb6类”,它将返回所需的数据。我读过VB.NET集合与VB6集合兼容,但我发现这是不真实的。我简单的测试包括:在VB6中访问.NET集合
.NET代码:
<ClassInterface(ClassInterfaceType.AutoDual)> _
Public Class MyCOMClass
Public Function TestMe() As Microsoft.VisualBasic.Collection
Dim ret As New Microsoft.VisualBasic.Collection
Dim inParam As String = "Stuff "
ret.Add(inParam)
ret.Add(inParam & "2")
ret.Add(inParam & "3")
ret.Add(inParam & "4")
Return ret
End Function
End Class
VB6:
Dim a As MyDotNet.MyCOMClass
Set a = New MyDotNet.MyCOMClass
Dim c As Collection
Set c = a.TestMe()
在这条线,我收到一个 “类型不匹配,错误13” 错误。
我有点茫然。我基本上需要从.NET代码返回一个列表或数组项目 - 我已经必须将现有的.NET类对象打包成一个字符串或返回到VB6(然后将其解压缩) ,所以我试图让自己稍微容易些。
任何建议或提示将不胜感激!
谢谢。
标记此一个的答案,如这几乎是我所做的。暴露一些简单的对象,并使用数组来传递信息。 – 2011-06-20 13:27:25