0

我放弃了寻找适合以下方法的数据类型:

  1. 我有需要“BSTR 字符串向量”的 COM 对象方法(如 COM 文档所述)。

它完美地工作于:a)python(一切都来自python BTW)

Visum.Net.Zones.GetmultipleAttributes(["No","Name","XCoord","YCoord","Name","SHAREPRTORIG","SHAREPRTDEST"])

b) VBS:

Visum.Net.Zones.GetmultipleAttributes(Array("No","Name","XCoord","YCoord","Name","SHAREPRTORIG","SHAREPRTDEST"))

c) 但 VB 无能为力(引发“CComBaseContainer::GetMultipleAttributes failed”错误)

它尝试Out=Visum.Net.Zones.GetmultipleAttributes(In)了以下数据类型的这种方法,每次都出现相同的错误:

Dim Out As Object
Dim In As New List(Of String)
Dim In(2) As String
In.toArray()

我怎样才能满足这种方法?

PS。从文档中引用:

GetMultipleAttributes ( [in] VARIANT AttrIDs, [out, retval] VARIANT *value)
返回容器所有网络对象的多个属性值。必须将属性 ID 指定为 BSTR 字符串的向量。返回值包含一个由所有对象和指定属性的值组成的 VARIANT 值矩阵。矩阵的行以标准顺序(按它们的键排序)对应于网络对象。列对应于指定顺序的属性。参数 [in] VARIANT AttrIDs Vectorof 属性 ID,如 ATTRIBUTE.XLS 中所示。[out, retval] VARIANT *value 容器中所有网络对象的这些属性的值矩阵

在此先感谢 i2

4

2 回答 2

0

如果这在 VBS 中有效:

Visum.Net.Zones.GetmultipleAttributes(Array("No","Name","XCoord","YCoord","Name","SHAREPRTORIG","SHAREPRTDEST"))

这应该在 VB.NET 中工作:

Dim a() As String= New String() {"No", "Name", "XCoord","YCoord","Name","SHAREPRTORIG","SHAREPRTDEST"}

Visum.Net.Zones.GetmultipleAttributes(a) 'you might need a() instead

请看一下这个问题以进行澄清:VB.NET 中 Array() 的等效项?

于 2013-02-21T11:40:11.063 回答
0

以下终于奏效了,但不要问我为什么:

    Dim In() As Object = {"No","Name","XCoord","YCoord","Name","SHAREPRTORIG","SHAREPRTDEST"}
    Dim VisumOut(,) As Object
    VisumOut = Visum.Net.Zones.GetMultipleAttributes(In)

经过百万次的尝试,它终于好了。如果您知道这是为什么,请给我们正确的答案。

Powodzenia,拉法乌!

于 2013-02-22T09:43:15.913 回答