L>>Поначалу после С++ было сложно. Правда, здОрово помогало наличие прекрасного (по сравнению с C++) отладчика c возможностями подёргать код "на коленке". Но после привыкания к JS слезть с него уже становится проблемой
L>Какой такой отладчик?!
Не поверишь — Visual Studio 2002, 2003 или 2005
Запускаешь cscript.exe (wscript.exe) с ключом /d и там где тебе нужно в программе остановиться — пишешь debugger;
Здравствуйте, Left2, Вы писали:
L>>>Ты разъясни подробнее суть проблемы. Что именно тебе нужно сделать? У тебя функция f() вызывается из C++ и ты хочешь получить много возвращаемых значений?
L>>да. Суть сложности (на счет проблемы — не знаю, пока не пробовал), что значения предадутся по COM интерфейсу. Если данные укладываются в VARIANT, то все нормально, но 2 значения — это уже массив...
L>Напиши простенькую обёрточку которая из обьекта JS (видимого в C++ как IDispatch) доставала все значения (или значения по их именам). Это решит твою проблему?
Задача обратная, это не программа С++ через COM дергает ф-ю, а WSH через COM пытается получить переменные для их последующего изменения. Ну вобщем не суть, какраз это не предмет данного разговора
Здравствуйте, Left2, Вы писали:
L>>WSH через COM пытается получить переменные для их последующего изменения.
L>Вот это непонятно. L>WSH — имеется в виду wscript.exe/cscript.exe?
см IActiveScriptSite, IActiveScriptSiteWindow и прочее
L>>>WSH через COM пытается получить переменные для их последующего изменения.
L>>Вот это непонятно. L>>WSH — имеется в виду wscript.exe/cscript.exe? L>см IActiveScriptSite, IActiveScriptSiteWindow и прочее
Я знаю что это такое Я не понимаю твоих обьяснений. Судя по всему, WSH-ем ты называешь своё приложение, которое является ActiveScripting-хотером? Но я всё равно всё ещё не понимаю сути проблемы. Если обьяснишь подробно — попробую помочь, мне с ActiveScripting-ом пришлось повозиться как-то...
Здравствуйте, Left2, Вы писали:
L>Не поверишь — Visual Studio 2002, 2003 или 2005 L>Запускаешь cscript.exe (wscript.exe) с ключом /d и там где тебе нужно в программе остановиться — пишешь debugger;
L>>Не поверишь — Visual Studio 2002, 2003 или 2005 L>>Запускаешь cscript.exe (wscript.exe) с ключом /d и там где тебе нужно в программе остановиться — пишешь debugger;
L>А есть подобное волшебное слово для VBScript?
Не в курсе, надо в MSDN смотреть. Но и без этого волшебного слова ты можешь в любой момент подключиться отладчиком к любому скриптовому языку который работает из-под ActiveScripting через Debug/Attach to Process...
Здравствуйте, Left2, Вы писали:
L>Я знаю что это такое Я не понимаю твоих обьяснений. Судя по всему, WSH-ем ты называешь своё приложение, которое является ActiveScripting-хотером? Но я всё равно всё ещё не понимаю сути проблемы. Если обьяснишь подробно — попробую помочь, мне с ActiveScripting-ом пришлось повозиться как-то...
WSHем я называю виндоус скрипт хост к которому обращается мой приклад посредством скрипт энджена и скрипт сайта (немного, не праильно сформулировано, но сейчас не суть). Так вот когда этот зверьб пытается запустит
В результате скармливаю енджену функцию и выполняю ее, переменные val1, и val2 доступны из моего приклада как COM обьект
Sub Waca (ByRef val1, ByRef val2)
SomeVar = val1' тут вызывается один СОМ метод который предоставляет значение
val1 = 5 ' 'тут второй на запись
val2 = 7 ' тут третий на записьend sub
Вопрос — как реализовывать СОМ интерфейсы в этом случае для сложных типов.
Здравствуйте, Left2, Вы писали:
L>>>Не поверишь — Visual Studio 2002, 2003 или 2005 L>>>Запускаешь cscript.exe (wscript.exe) с ключом /d и там где тебе нужно в программе остановиться — пишешь debugger;
L>>А есть подобное волшебное слово для VBScript? L>Не в курсе, надо в MSDN смотреть. Но и без этого волшебного слова ты можешь в любой момент подключиться отладчиком к любому скриптовому языку который работает из-под ActiveScripting через Debug/Attach to Process...
L>Вопрос — как реализовывать СОМ интерфейсы в этом случае для сложных типов.
Не очень хорошо у тебя получилось обьяснить
Я всё ещё ничего не понимаю
Во-1 — код который тут приведён жёстко заточен под VBScript, поскольку я честно говоря не очень хорошо представляю как в JS вызвать аналог VBS-ного присваивания (или как там у него называется оператор присваивания без ключевого слова SET). Во-2 — что мешает тебе описать в IDL человеческий интерфейс с функциями и пропертями, и потом писать код хоть на VBS хоть на JS вида:
Здравствуйте, Left2, Вы писали:
L>>Вопрос — как реализовывать СОМ интерфейсы в этом случае для сложных типов.
L>Не очень хорошо у тебя получилось обьяснить L>Я всё ещё ничего не понимаю L>Во-1 — код который тут приведён жёстко заточен под VBScript
Это не так. WSH по барабану на чем написано. L>Во-2 — что мешает тебе описать
То что это криво. Т.е. тот кто пишет скрипт должен знать о наличии этих СОМ методов. А в моем случае это все происходит не явно...
Вобщем, вы, похоже не с той частью задачи сталкивались. Ладно. Не суть.
Здравствуйте, loknalori, Вы писали:
L>В VBScript не вводились нововведения достаточно давно, т.е. и на 2000м я получу тот же функционал что и на XP. Ну и вроде бы и все.
L>А как на самом деле обстоит дело?
JScript более приятный, зато VBS интегрирован с COM лучше — он понимает COM коллекции, и в нем есть свойства (для того, чтобы сделать объект со свойстваи на JS надо делать WSC а в VBS они есть в самом языке).
no4>JScript более приятный, зато VBS интегрирован с COM лучше — он понимает COM коллекции,
ЕМНИП, через обьект Enumerator JScript тоже умеет с коллекциями работать.