我有一个使用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