我有一個需要從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