Здравствуйте!
Имею TestComplete версии 3.* - выше начальство покупать не хочет.
Поскольку он не понимает NET.Framework 2.0, использую COM объекты
(да и в самом деле работает быстрее).
Но загвоздка - не могу передать массив (объект Array) в качестве параметра
Ругается, что "Класс не поддерживает программирование объектов".
Помогите, плз! Я только начинаю, JScript знаю очень плохо.
(COM компонент написан на C#)

передача объектов в COM компоненты
Автор niky, 15 мая 2006 08:46
Сообщений в теме: 6
#1
Отправлено 15 мая 2006 - 08:46
#2
Отправлено 15 мая 2006 - 09:38
Здравствуйте.
Array в JScript не является стандартным объектом, и не факт, что получиться его передать. Можно попробовать передать то, что возвращается методом VBArray, поможет ли, точно сказать не могу - myArr.VBArray().
А как работать с dotNETBridge в TestComplete 3 вот здесь писал objective.
Array в JScript не является стандартным объектом, и не факт, что получиться его передать. Можно попробовать передать то, что возвращается методом VBArray, поможет ли, точно сказать не могу - myArr.VBArray().
А как работать с dotNETBridge в TestComplete 3 вот здесь писал objective.
С уважением,
Дмитрий
Дмитрий
#3
Отправлено 16 мая 2006 - 04:38
VBArray не метод, к сожалению. Это объект, который в конструкторе имеет ссылку на VB массив (то есть на массив, созданный на VBScript). Ну и как его создать если Project на JScript?
#5
Отправлено 16 мая 2006 - 17:16
Здравствуйте.
Да, действительно, неправду сказал. Преобразовать JScript array в Safe array можно используя вот этот код (взят из хелпа ТС4):
Да, действительно, неправду сказал. Преобразовать JScript array в Safe array можно используя вот этот код (взят из хелпа ТС4):
function ConvertJScriptArray(JScriptArray) { // Uses the Dictionary object to convert JScript array var objDict = new ActiveXObject("Scripting.Dictionary"); objDict.RemoveAll(); for (var i in JScriptArray) objDict.Add(i, JScriptArray[i]); return objDict.Items(); }
С уважением,
Дмитрий
Дмитрий
#6
Отправлено 19 июня 2006 - 11:47
Еще раз здравствуйте! Спасибо (запоздалое, правда) за помощь. Теперь у меня обратная проблема:
Метод, реализуемый в COM компоненте, возвращает массив.
Как его увидеть в TestComplete?
Метод отрабатывает, но возвращает не объект, а нечто {...} - если через Watch смотреть. Даже если переменную ранее принудительно объявить как объект - не помогает.
Метод, реализуемый в COM компоненте, возвращает массив.
Как его увидеть в TestComplete?
Метод отрабатывает, но возвращает не объект, а нечто {...} - если через Watch смотреть. Даже если переменную ранее принудительно объявить как объект - не помогает.
#7
Отправлено 22 июня 2006 - 06:30
Здравствуйте.
Попробуйте так:
Попробуйте так:
//JScript var realArray = new VBArray(myArray); realArray = realArray.toArray();
С уважением,
Дмитрий
Дмитрий
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных