OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 05:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 05 Февраль, 2010 13:23 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 13:17
Сообщения: 84
Откуда: Россия, Мурманск
Как их прочитать?
Т.е. аналог ParamStr() в Delphi.

Искал-искал, не нашёл. Подскажите, пожалуйста.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 05 Февраль, 2010 14:10 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Через WinApi. Если я правильно помню - WinApi.GetCommandLine(W). Можно посмотреть в модуле HostMenus, процедуры Run и ReadCommandLine


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 05 Февраль, 2010 14:18 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Командную строку можно прочитать с помощью WinApi.GetCommandLine.
Но надо учесть, что обычно параметры командной строки предназначены для самого ББ.
Официальный способ передавать параметры приложению - через флаг /PAR. То, что после него попадает в переменную Dialog.commandLinePars.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 05 Февраль, 2010 14:33 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 13:17
Сообщения: 84
Откуда: Россия, Мурманск
Trurl писал(а):
Командную строку можно прочитать с помощью WinApi.GetCommandLine.
Но надо учесть, что обычно параметры командной строки предназначены для самого ББ.
Официальный способ передавать параметры приложению - через флаг /PAR. То, что после него попадает в переменную Dialog.commandLinePars.

Ага!
Тем хуже...
Мне надо написать плагин. Он должен быть в виде exe, которому передаются 2 параметра: входной и выходной файл (имена файлов, естественно). Как можно отключить в своём приложении на BB стандартную обработку параметров командной строки?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 05 Февраль, 2010 14:39 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Отключить? Не использовать BlackBox Component Framework.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 10:38 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Позвольте расширить тему. Вопрос о том, как создавать собственные параметры запуска и при этом сократить до минимума количество изменений в среде после её установки. Обозначу два крайних подхода.
1. Сделать в bat-файле параметр запуска вызовом процедуры. Что-то типа
Код:
BlackBox.exe --Module.Procedure
Тогда можно будет стартовать ВВ с любой процедуры.
2. Указывать стартовую процедуру при сборке ВВ линкером.
Код:
(!) DevLinker.Link Module.Procedure Program.exe := …
Тогда при запуске ВВ будет выполнять только уже указанные действия, кроме загрузки.
Какие существуют варианты, чтобы выбрать оптимальный?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 11:16 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
id_ler писал(а):
Тогда можно будет стартовать ВВ с любой процедуры.
А что подразумевается делать после этого? ББ продолжает работать или после выполнения процедуры программа завершается? Во втором случае можно слинковать DLL и использовать стандартный RunDll.exe.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 12:33 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Александр Ильин писал(а):
А что подразумевается делать после этого? ББ продолжает работать или после выполнения процедуры программа завершается?
Вопрос навеян темой выделения из ВВ компилятора командной строки для олимпиадных целей, что мне кажется не лучшим вариантом. В данной теме есть задачка
sacred писал(а):
Мне надо написать плагин. Он должен быть в виде exe, которому передаются 2 параметра: входной и выходной файл (имена файлов, естественно)
В общем, для взаимодействия ВВ с внешними файлами, где загрузка среды не требуется. Задачи могут быть самые различные. Главное – вызов нужной процедуры, используя сам ВВ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 09 Февраль, 2010 10:53 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 13:17
Сообщения: 84
Откуда: Россия, Мурманск
id_ler писал(а):
В общем, для взаимодействия ВВ с внешними файлами, где загрузка среды не требуется. Задачи могут быть самые различные. Главное – вызов нужной процедуры, используя сам ВВ.

В моём случае всё делается просто. Так как в моей задаче не используется фреймворк BB, то всё просто. Пишу в разделе инициализации главного модуля вызов нужной мне процедуры, и всё. Никаких доработок в каркас BB не требуется. Всё работает как надо, и параметры через WinApi я спокойно могу обрабатывать, спасибо Ивану Горячеву, и Trurl'ю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 09 Февраль, 2010 12:54 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
sacred писал(а):
В моём случае всё делается просто.
Понятно, что каждая задача имеет свое решение. Мое предложение в том, что необходимо ввести однообразие в обработку внешних файлов. Такая обработка может происходить при помощи параметров запуска BlackBox.exe. Например, линкуем ВВ включив в сборку подсистему Dev. Чтобы скомпилировать программный модуль из внешнего редактора, запускаем BlackBox.exe с одним параметром. При этом в каталоге, где находится сборка ВВ создаются папки Code и Sym с соответствующими файлами модуля. При запуске BlackBox.exe с другими параметрами происходит вызов процедур из скомпилированного модуля и выполнение программы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB