Доступ к сервисам VB из других программ
От: Аноним  
Дата: 23.01.02 09:13
Оценка:
Задача такая: имеется текст на VB, но в качестве редактора (IDE) выступает прога на VC++. Сам VB машине установлен. Как из VC++ заставить VB этот текст компилить(интерпретировать), выдавать ошибки, вставать на точках останова и т.д. (VB при этом видно быть не должно). Иными словами, надо полностью(по крайней мере в плане компиляции/выполнения/отладки) заменить VB IDE на свою.
Есть такая штука — Visual Basic Extensibility, но она вроде как для написания аддинов и я не знаю, можно ли ей тут как-то воспользоваться.
Re: Доступ к сервисам VB из других программ
От: Reostat Россия  
Дата: 24.01.02 16:16
Оценка:
Ответ (по крайней мере, вполне соответствующий моим целям) нашел сам, так что в соответствии с рекомендациями форума отвечу сам себе и всем интересующимся.

Есть целый набор интерфейсов Microsoft Windows Script Interfaces, внутри которого, в частности, есть Script Engine (это то, что собственно и занимается разбором синтаксиса конкретного языка), и Script Host(который предоставляет набор объектов для доступа из Script Engine). Например, Internet Explorer является Script Host'ом (с объектами типа frame, document и т.д), и, по дефолту, использует два скрипт-движка (тоже, естественно, от MS) — JScript Engine и VBScript Engine. Ни что не мешает вам разработать движок для собственного языка и писать скрипты на нем или наоборот, завернуть набор своих объектов в стандарные обертки и "склеивать" их потом стандартным VBScript'ом. Подробнее об этом можно прочитать в MSDN (у меня — июль 2001) в разделе Platform SDK Documentation\Tools and Scripting\Scripting\Microsoft Windows Script Interfaces.

Но это еще не все. Есть еще возможность написать свой отладчик для отладки скриптов. Название сему — Active Script Debugging Interfaces (правда в июльском MSDN этой инфы нет, но найти можно).

Но и это не все. У меня-то проблема в том, что заказчик желает писать свои скрипты на русском языке (вот ведь привереда ). Ни VBScript, ни JScript символы национальной кодировки не поддерживают. Что делать? Писать свой скрипт-движок — так это надо либо уметь, либо долго учиться, чтобы что-нибудь более-менее серьезное сделать (поверьте мне — долгое время изучал в теории и практике принципы построения компиляторов). Так вот, на этот случай Microsoft распространяет целый VBA SDK, который предоставляет целый спектр сервисов — от отладки до подсветки синтаксиса (в Word'е макросы все писали? ). Подписчики MSDN могут найти его в своей подписке (у меня, в частности, VBA SDK 6.3 обнаружился в сентябрьском выпуске 2001 года, диск 0008.1) или скачать через официального распространителя — компанию Summit Software (support там же).

Уфф! Теперь вроде бы все. Если у кого есть дополнения/поправки — буду рад.
...бабочки, курицы и прочие травоядные.
Re[2]: Доступ к сервисам VB из других программ
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 25.01.02 07:08
Оценка:
Здравствуйте Reostat, Вы писали:


R>Ответ (по крайней мере, вполне соответствующий моим целям) нашел сам, так что в соответствии с рекомендациями форума отвечу сам себе и всем интересующимся.


Вот ведь, а я решил что вопрос из другой оперы.

R>Есть целый набор интерфейсов Microsoft Windows Script Interfaces, внутри которого, в частности, есть Script Engine (это то, что собственно и занимается разбором синтаксиса конкретного языка), и Script Host(который предоставляет набор объектов для доступа из Script Engine). Например, Internet Explorer является Script Host'ом (с объектами типа frame, document и т.д), и, по дефолту, использует два скрипт-движка (тоже, естественно, от MS) — JScript Engine и VBScript Engine. Ни что не мешает вам разработать движок для собственного языка и писать скрипты на нем или наоборот, завернуть набор своих объектов в стандарные обертки и "склеивать" их потом стандартным VBScript'ом. Подробнее об этом можно прочитать в MSDN (у меня — июль 2001) в разделе Platform SDK Documentation\Tools and Scripting\Scripting\Microsoft Windows Script Interfaces.

Ага, и все это существует с 96(?) . До сих пор ощущение, что я только что вышел из леса.

R>Но это еще не все. Есть еще возможность написать свой отладчик для отладки скриптов. Название сему — Active Script Debugging Interfaces (правда в июльском MSDN этой инфы нет, но найти можно).


Это круто, но сочетание "возможность написать" по-моему мало кого радует. Мать, ну сколько можно? А приходится.

R>Но и это не все. У меня-то проблема в том, что заказчик желает писать свои скрипты на русском языке (вот ведь привереда ). Ни VBScript, ни JScript символы национальной кодировки не поддерживают. Что делать? Писать свой скрипт-движок — так это надо либо уметь, либо долго учиться, чтобы что-нибудь более-менее серьезное сделать (поверьте мне — долгое время изучал в теории и практике принципы построения компиляторов). Так вот, на этот случай Microsoft распространяет целый VBA SDK, который предоставляет целый спектр сервисов — от отладки до подсветки синтаксиса (в Word'е макросы все писали? ). Подписчики MSDN могут найти его в своей подписке (у меня, в частности, VBA SDK 6.3 обнаружился в сентябрьском выпуске 2001 года, диск 0008.1) или скачать через официального распространителя — компанию Summit Software (support там же).


Вот только этот VBA SDK, на сколько я понял из объяснений VladD2, весьма и весьма платный (для распространения в составе своего ПО) . Хотя, конечно, предоставляемый сервис того стоит ...
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: Доступ к сервисам VB из других программ
От: Reostat Россия  
Дата: 25.01.02 09:11
Оценка:
Здравствуйте Коваленко Дмитрий, Вы писали:


R>>Но это еще не все. Есть еще возможность написать свой отладчик для отладки скриптов. Название сему — Active Script Debugging Interfaces (правда в июльском MSDN этой инфы нет, но найти можно).


КД>Это круто, но сочетание "возможность написать" по-моему мало кого радует. Мать, ну сколько можно? А приходится.


Нет, ну в чем проблема? Не хочешь писать — бери готовый, напр. Microsoft Script Debugger. Тут речь о том, что если надо написать, то решение этой задачи тебе уже облегчили.


КД>Вот только этот VBA SDK, на сколько я понял из объяснений VladD2, весьма и весьма платный (для распространения в составе своего ПО) . Хотя, конечно, предоставляемый сервис того стоит ...


Ну дык ведь платить-то надо только "в самом конце", т.е. если собираешься распротсранять свое ПО как лицензионное и за деньги, а все эксперименты, отладка и доводка — бесплатно. И потом, если заказчик хочет иметь определенные сервисы (в моем случае — русский язык), значит он готов за это платить. Но эти рассуждения, вообще говоря, уже для другого форума...
...бабочки, курицы и прочие травоядные.
Re[4]: Доступ к сервисам VB из других программ
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 25.01.02 09:22
Оценка:
Здравствуйте Reostat, Вы писали:

R>Здравствуйте Коваленко Дмитрий, Вы писали:



R>>>Но это еще не все. Есть еще возможность написать свой отладчик для отладки скриптов. Название сему — Active Script Debugging Interfaces (правда в июльском MSDN этой инфы нет, но найти можно).


КД>>Это круто, но сочетание "возможность написать" по-моему мало кого радует. Мать, ну сколько можно? А приходится.


R>Нет, ну в чем проблема? Не хочешь писать — бери готовый, напр. Microsoft Script Debugger. Тут речь о том, что если надо написать, то решение этой задачи тебе уже облегчили.

Эээээ... . Возможно я просто в него не врубился. Его можно к любому приложению прикрутить? Черт, это тогда однозначно прийдется раставаться со ScriptControl'ом.

R>Ну дык ведь платить-то надо только "в самом конце", т.е. если собираешься распротсранять свое ПО как лицензионное и за деньги, а все эксперименты, отладка и доводка — бесплатно. И потом, если заказчик хочет иметь определенные сервисы (в моем случае — русский язык), значит он готов за это платить. Но эти рассуждения, вообще говоря, уже для другого форума...


Да вообшем-то это я так брякнул — . Заказчик у нас богатый
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.