gpt4 book ai didi

c# - 如何将 C# 字符串数组编码为 VB6 数组?

转载 作者:行者123 更新时间:2023-11-30 20:11:05 24 4
gpt4 key购买 nike

我有一个使用 C# COM DLL 的 VB6 应用程序。在托管 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 代码的第四行失败,出现错误 “编译错误:无法分配给数组”

最佳答案

strArr() 变量实际上不是字符串数组。它是一个变体数组。修复:

Dim strArr() As String
strArr = test.OneTwoThree

现在它与您的第一个代码段相同。

关于c# - 如何将 C# 字符串数组编码为 VB6 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com