В настоящее время я немного борюсь с проблемой, связанной с ActiveX-интерфейсом и, в частности, с Variant-Array. Я нашел несколько ответов, как добиться преобразования, но, к сожалению, у меня пока ничего не работает. Возможно ты можешь помочь мне. Вот моя проблема:
У меня есть объекты, полученные через ActiveXInterface. Теперь один ActiveX-метод требует наличия двух таких объектов в массиве.
В VB это то, что вы в основном делаете
Dim aVar1(1)
Set aVar1(0) = oReferenceLine1
Set aVar1(1) = oReferenceLine2
После этого вы передаете этот массив такой функции, как эта
Set oNewJoint = oNewMechanism.AddJoint("CATKinCylindricalJoint",aVar1)
Работа со всем, что я получаю через интерфейс, работает нормально, но я не могу создать массив для передачи этой функции. Один из подходов, которые я нашел для решения этой проблемы, заключался в следующем.
var vbArray = new ActiveXObject('Scripting.Dictionary');
$.each(JSArray, function(index){
vbArray.add(index, JSArray[index]);
});
return vbArray.Items();
Однако если я сделаю это. Я просто возвращаю неопределенное. vbArray создается, и я могу получить доступ, например, vbArray.Item (1), но vbArray.Items () просто продолжает возвращать undefined и вызывать функцию
var joint = mechanism.ActiveXObject.AddJoint('CATKinCynlindricalJoint', vbArray);
просто продолжает возвращать TypeConflict
Было бы здорово, если бы у кого-то была идея, как я могу поместить эти два объекта в массив и передать их как вариантный массив моему Приложению.