Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 16 июн 2025, 23:08

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 02 июл 2017, 13:28 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
Имеется программа
Код: "OBERON"
  1. MODULE UI;
  2. IMPORT Dialog;
  3. PROCEDURE Lookup*;
  4. BEGIN
  5.  
  6. END Lookup;
  7. END UI.
  8. ^Q DevCompiler.Compile
  9. ^Q DevLinker.LinkExe UI.exe := i21sysCyrillic
  10. i21sysCharacters
  11. Kernel+
  12. Files
  13. Dialog
  14. Ui~

Через меню автоматически генерирую форму с единственной кнопкой к этой программе, но вот потом как эту форму запихнуть в .exe?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 02 июл 2017, 22:57 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Len, форму нужно сохранить в документе .odc в папке Rsrc своей подсистемы, которую Вы разрабатываете. BlackBox регламентирует называть модули ПодсистемаМодуль именно чтобы было видно, к какой подсистеме относится модуль, этакая одноуровневая иерархия.

Но подключить эту форму в линкуемый EXE-файл недостаточно. Понадобятся ещё подсистемы Form, Text, System и, наверное, не только они. Посмотрите, например, файл Lite.odc, который я создал для линковки среды разработки XDevLite, чтобы использовать её отдельно от BlackBox. Сколько там всего, да?

Вам будет интересно узнать, что такой способ линковки независимого EXE вообще-то не является штатным в идеологии среды BlackBox. В отличии от более традиционных сред типа Delphi, где есть чёткое разделение на среду и отчуждаемую пользовательскую программу, в BlackBox применяется другой подход. Там сама среда постепенно превращается в пользовательскую программу путём расширения её функциональности в нужную прикладную сторону. Я Вам очень советую уроки по BlackBox, которые совсем недавно начал записывать Иван Денисов. Не сочтите мою отсылку за желание отмахнуться, уроки и правда очень хорошие, я сам их смотрю. И все эти вопросы, которые мы сейчас обсуждали (например, установка подсистем), там подробно изложены. Пока что снято 5 уроков. Вот ссылка:


Ещё у Ивана Денисова в его сборке Red есть подсистема для автоматического создания списка файлов для линковки независимого EXE, как называется не помню, не пользовался, просто видел.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 03 июл 2017, 07:59 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
У Ивана Денисова про линковку пока ничего не сказано. Насчёт подсистем для автоматического создания списка файлов для линковки независимого EXE сказано в http://oberoncore.ru/wiki/blackbox/make_exe, например Alm01Gather или Bbt.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 03 июл 2017, 08:32 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
Как слинковать WinApi и WinOle? Я так понимаю - они нужны для пользовательского интерфейса. BlackBox их почемуто не может обнаружить, а когда я открываю их исходники из папки Win\Mod и компилирую их, то папки Win\Code не создаётся :( . Где взять скомпилируемые WinApi и WinOle, чтобы их слинковать со своей программой?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 03 июл 2017, 09:18 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
Напишите, пожалуйста программу с пустой формой, ничего не делающую и как её слинковать.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 июл 2017, 22:04 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Len писал(а):
У Ивана Денисова про линковку пока ничего не сказано.
Но Вы уже поняли, что идеология работы "приложений" в среде BlackBox это расширение самой среды до нужной функциональности, а не генерация отдельных EXE. Это непривычно. А отчуждение в хост-ОС в виде DLL/EXE — это компромисс. Поэтому если Вам нужно именно это, то это можно, но не так просто как, например, в Дельфи.

Len писал(а):
Насчёт подсистем для автоматического создания списка файлов для линковки независимого EXE сказано в http://oberoncore.ru/wiki/blackbox/make_exe, например Alm01Gather или Bbt.
Ещё советую мою статью «BlackBox Component Builder: линковка и Linux». В ней рассказывается на примере игры Samurai как слинковать в BlackBox приложение для Windows и Linux. Информация в статье несколько устарела (за это время появился универсальный линкер Игоря Дехтяренко для Windows/Linux/BSD, который не требует отдельного "пускача" на Си), но всё остальное актуально.

Len писал(а):
Как слинковать WinApi и WinOle?
Модули WinApi и WinOle это не кодовые модули. Это интерфейсные модули, они просто являются посредниками между Оберон-окружением и хост-ОС. Когда Вы их компилируете, создаются символьные файлы (*.osf) с мета-информацией о процедурах, константах и переменных. И никакого исполняемого кода (*.ocf). Соответственно, линковать их не нужно.

Len писал(а):
Напишите, пожалуйста программу с пустой формой, ничего не делающую и как её слинковать.
Len, ничего писать не буду. Расскажу теоретически и отошлю за глубокими вопросами к гуру по BlackBox на форум OberonCore. Итак.

Если Вы собрались делать форму на WinApi, то об этом хорошо написано в статье «Как создать программу *.exe».

Если Вам нужно отображать форму средствами самого BlackBox, вначале напишите какой-то стартовый код, чтобы Ваша форма открывалась при запуске BlackBox. При этом придётся добавить свой код в (System)Config. Наверно можно как-то ещё. Я не настолько хорошо знаю BlackBox.

Потом испробуйте ту самую подсистему из Red. Про неё можно поспрашивать у Ивана Денисова на OberonCore. Это будет и правда самый простой способ. Но не думайте, что Ваше "приложение", полученное таким способом, будет худеньким. Оно потянет за собой пол-БлэкБокса, его форму (она является хост-формой для Вашей mdi-формы), его меню и т.д.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 05 июл 2017, 06:27 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
Где можно почитать подробнее про WinApi? Какой-нибудь справочник по функциям, какая что значит.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 05 июл 2017, 10:29 
Не в сети
Администратор
Аватара пользователя

Сообщения: 189
Len у меня вопрос - вы хотите сделать приложение или какая цель вообще преследуется?
Почему именно BB?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 05 июл 2017, 10:38 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
Я хочу писать и затем продавать маленькие приложения, расчитывающие электрические цепи. Тут не обязательно BB. Но он меня привлёк наличием русской документации к модулям. Мне также понравился язык Оберон своей компактностью, по сравнению например с C#.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 05 июл 2017, 15:15 
Не в сети
Администратор
Аватара пользователя

Сообщения: 189
Если на ББ, то маленькие не получатся!!!
Придеться таскать с собой весь фреймворк... Как VB + dll + ocx с приложением...
Либо упаковывать всё это в архивы...

Если на WinApi или LinApi (под платформы, то вам придется делать свои контролы и компоненты)..
Как пример viewtopic.php?f=15&t=268&start=10#p1606
Тут я полностью отрисовывал контролы на форме + делал свою микроVCL библиотеку...
Кнрпочки, скроллбары, тоолбары и т.д...

Вообщем, если нативные приложения, то всё в ручную... Но позволяет разобраться в структуре и реализации GUI приложений!!!


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club