![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
Добрый вечер!
Есть ли скриптовые языки для C#, в которых можно использовать объявленные классы в библиотеках? С простым синтаксисом, как VBScript. Пишется скрипт, потом скармливается программе на C#, и выполняется. Спасибо за ответ. |
|||
|
||||
| Fiyanov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 255 Регистрация: 19.4.2007 Где: Kazakhstan->Te mirtau Репутация: нет Всего: 2 |
Вы хотите готовый интерпритатор на Си ШАрп? |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
Fiyanov, нет, я хочу движок, что бы можно было его подключить к программе на C#, с помощью которого смогу разрабатывать скрипты на этом языке, и выполнять в своей программе. Он должен позволять оперировать с объектами, которые предоставляет программа на C#.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
-------------------- ![]() |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
mr.DUDA, благодарю за ответ.
|
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
А есть движок с синтаксисом как VBScript (не как VB)??
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 5 Всего: 36 |
Luceus,
штатно в OS встроены движки для JScript и VBScript, их использование в программе возможно через технологию Active Scripting |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
Rififi, А можно более подробно? Какие классы или объекты необходимо использовать? Или ссылку на чтиво? Спасибо.
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 5 Всего: 36 |
Luceus,
чтиво здесь вкраце: клиенту нужно имплементировать интерфейс IActiveScriptSite, через которые будет происходить общение с движком. Основные моменты при инициализации: private static readonly Guid IID_IActiveScript = new Guid("F414C260-6AC0-11CF-B6D1-00AA00BBBB58"); ... // создать движок this._script = (IActiveScript) Activator.CreateInstance(Type.GetTypeFromCLSID(IID_IActiveScript)); // Подключить Site this._site = new JScriptSite(); this._script.SetScriptSite(this._site); // Создать парсер this._parser = (IActiveScriptParse32) this._script; this._parser.InitNew(); // Запустить движок и подключить события (connection points) this._script.SetScriptState(ScriptState.Started); this._script.SetScriptState(ScriptState.Connected); после этого парсер способен выполнять скрипт-код и общаться с обьектами для добавления своих обьектов в пространство движка и работы с ними используется метод IActiveScriptSite.AddNamedItem для возможности использования чужих activex/com-обьектов, поддерживающихъ IDispatch, необходимо добавить в пространство движка библиотеку типов этого обьекта (IActiveScript.AddTypeLib) для vbscript, который мне не интересен, вроде всё. Для JScript дополнительно ещё рекомендуется почитать про интерфейс IDispatcEx Это сообщение отредактировал(а) Rififi - 21.4.2008, 14:15 |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
Спасибо за ответ. Буду смотреть дома.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
можно и c# выполнять на лету компилируя в память.
IronRuby еще есть. Script# и т.п. (их реально много). -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
jonie, меня интересует простенький VBScript =)
Rififi, а в интернете нет готовых маленьких примеров по этому? С помощью этого класса можно ли производить отладку скрипта в пошаговом режиме с просмотром всех переменных и т.д.? Спасибо. Это сообщение отредактировал(а) Luceus - 22.4.2008, 09:18 |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 5 Всего: 36 |
насчёт готовых примеров не знаю, не смотрел
но в журнале Dr. Dobbs была (есть?) хорошая подписка по этой теме. Для отладки этого мало, надо еще и специальные отладочные интерфейсы использовать/имплементировать http://msdn2.microsoft.com/en-us/magazine/cc301316.aspx |
|||
|
||||
| Luceus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 24.3.2006 Репутация: нет Всего: 1 |
Rififi, вы писали пример реализации движка, но у меня так и не получилось его запустить. :-( У вас есть рабочий пример с минимумом возможностей? Что бы можно было просто выполнять скрипты на VBScript.
Спасибо. |
|||
|
||||
| Jurassic |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Всем добрый день!
Кто нибудь работал с интерфейсом IActiveScriptSiteWindow? Не удается заставить vbscript выводить сообщения (MsgBox "hello"). Вот выдержки из кода:
Далее классе:
Как показала отладка, функция GetWindow остается нетронутой при выполнении. В чем может быть ошибка? Спасибо! |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |