我有一個使用C#COM DLL的VB6應用程序。在託管C++我可以寫出如下功能:如何編組一個C#字符串數組到VB6數組?
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代碼的錯誤「編譯錯誤:無法分配給陣列」
謝謝。現在工作!我認爲在VB中「Dim a,b,c As String」與C#「string a,b,c;」是一樣的沒有意識到你必須明確地指定每個類型。 – 2010-11-17 16:44:17