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 ATTRIBUTE.XLS のような属性 ID のベクトル。[out, retval] VARIANT *value コンテナー内のすべてのネット オブジェクトのこれらの属性の値のマトリックス

前もってありがとうi2

4

2 に答える 2

0

以下は最終的に機能しましたが、理由は聞かないでください。

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

数百万回の試行の後、最終的にはうまくいきました。その理由がわかる方、適切な回答をお願いします。

ポウォゼニア、ラファウ!

于 2013-02-22T09:43:15.913 に答える
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 に答える