2017-03-15 10 views
1

現在、ActiveX-Interface、特にVariant-Arrayに関する問題は少し苦労しています。私は変換を達成するためのいくつかの答えを見つけましたが、残念ながらこれまで私のために何も働いていませんでした。多分あなたは私を助けることができます。ここに私の問題があります:JavaScriptからCOMバリアント配列にオブジェクトの配列を変換する

ActiveXInterface経由で取得したオブジェクトがあります。現在では、1つのActiveX-Methodでこれらのオブジェクトの2つを配列に格納する必要があります。 VBで

これは私がインターフェイスを介して取得everythinこの

Set oNewJoint = oNewMechanism.AddJoint("CATKinCylindricalJoint",aVar1) 

作業が正常に動作しますようにあなたは、基本的にはその後

Dim aVar1(1) 
Set aVar1(0) = oReferenceLine1 
Set aVar1(1) = oReferenceLine2 

を何あなたが関数にこの配列を渡すが、私その関数を渡す配列を作成できません。この問題を解決するために見つけた1つのアプローチは、これでした。

var vbArray = new ActiveXObject('Scripting.Dictionary'); 
$.each(JSArray, function(index){ 
    vbArray.add(index, JSArray[index]); 
}); 

return vbArray.Items(); 

ただし、これを行うとします。私はちょうど未定義に戻ってきます。 vbArrayが作成され、私は例えばvbArray.Itemは、(1)が、vbArray.Items()ただ単に誰かが私はそれらを置くことができる方法のアイデアを持っている場合、それは素晴らしいことだTypeConflict

を返す保ち、undefinedを返しますと機能に

var joint = mechanism.ActiveXObject.AddJoint('CATKinCynlindricalJoint', vbArray); 

を呼び出し続けます2つのオブジェクトを配列に格納し、それらをバリアント配列としてアプリケーションに渡します。

答えて

-1

多くの場合、間違った方向でエラーを探していました。私はまだvbArrayの内容を読むことができませんでしたが、それは空ではありません。 'CATKinCynlindricalJoint'のタイプミスを修正した後

私は、引数としてvbArray.Items()を使用したとき、AddJoint-Methodが失敗したというエラーが発生していることに気付きました。私が未定義のメソッドを試してみたら、TypeConflictが返されました。だから明らかにvbArray.Items()は本当に未定義ではありませんでした。

その後、私は間違った議論を使って参考文献を作成し、vbArrayへの変換が実際に機能していることに気付きました。私が作ったエラーは、Catiaの細部までかなり詳しく説明されているので、私はそれに触れることはありません。

+0

あなたは「それに潜んでいなければなりません」、それは答えを残す全ポイントです。これはフォーラムではありませんので、1つのように扱わないでください。 – Lankymart

関連する問題