У меня есть приложение VB6, которое использует C # COM DLL. В управляемом C ++ я могу написать функцию следующим образом:
array<String^>^ GetAManagedArray()
{
//Do stuff and return a managed array
}
Затем я могу назначить возвращенный управляемый массив массиву в VB6:
Sub MySub()
Dim strArray() As String
strArray = myComObject.GetAManagedArray
End Sub
Это прекрасно работает в C ++, но в C # объект System.Array
является абстрактным, и я не могу найти управляемый эквивалент C ++ array<>^
. Также, в C # просто возврат string[]
не работает.
Что такое эквивалент управляемого массива в C #?
РЕДАКТИРОВАТЬ: Вот точный код, который я имею для функций
Функция C # COM:
public string[] OneTwoThree()
{
return new string[] { "1", "2", "3" };
}
Функция VB6:
Private Sub Form_Load()
Dim test As New ComObjectCSharp
Dim strArr(), strTemp As String
strArr = test.OneTwoThree
strTemp = strArr(0) & " " & strArr(1) & " " & strArr(2)
MsgBox strTemp
End Sub
Сбой кода в четвертой строке кода VB6 с ошибкой «Ошибка компиляции: невозможно присвоить массиву»