У меня есть сборка .NET, в которой есть подпрограммы, которые нужно вызывать из библиотеки VB6. Процедуры сборки .NET для другого кода .NET будут возвращать списки объектов. Однако это не будет работать для VB6. Поэтому я использую Interop для создания «класса vb6», который будет возвращать необходимые данные. Я читал, что VB.NET Collection совместим с VB6 Collection, но я обнаружил, что это не соответствует действительности. Мой простой тест состоит из:
.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 (который затем должен будет распаковать его) поэтому я пытался сделать это немного легче для себя.
Любые предложения или советы будут оценены!
Спасибо.