Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Как собрать (слинковать) форму в EXE? https://zx.oberon.org/forum/viewtopic.php?f=79&t=321 |
Страница 1 из 2 |
Автор: | Len [ 02 июл 2017, 13:28 ] |
Заголовок сообщения: | Как собрать (слинковать) форму в EXE? |
Имеется программа Код: "OBERON"
Через меню автоматически генерирую форму с единственной кнопкой к этой программе, но вот потом как эту форму запихнуть в .exe? |
Автор: | Zorko [ 02 июл 2017, 22:57 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Len, форму нужно сохранить в документе .odc в папке Rsrc своей подсистемы, которую Вы разрабатываете. BlackBox регламентирует называть модули ПодсистемаМодуль именно чтобы было видно, к какой подсистеме относится модуль, этакая одноуровневая иерархия. Но подключить эту форму в линкуемый EXE-файл недостаточно. Понадобятся ещё подсистемы Form, Text, System и, наверное, не только они. Посмотрите, например, файл Lite.odc, который я создал для линковки среды разработки XDevLite, чтобы использовать её отдельно от BlackBox. Сколько там всего, да? Вам будет интересно узнать, что такой способ линковки независимого EXE вообще-то не является штатным в идеологии среды BlackBox. В отличии от более традиционных сред типа Delphi, где есть чёткое разделение на среду и отчуждаемую пользовательскую программу, в BlackBox применяется другой подход. Там сама среда постепенно превращается в пользовательскую программу путём расширения её функциональности в нужную прикладную сторону. Я Вам очень советую уроки по BlackBox, которые совсем недавно начал записывать Иван Денисов. Не сочтите мою отсылку за желание отмахнуться, уроки и правда очень хорошие, я сам их смотрю. И все эти вопросы, которые мы сейчас обсуждали (например, установка подсистем), там подробно изложены. Пока что снято 5 уроков. Вот ссылка: Ещё у Ивана Денисова в его сборке Red есть подсистема для автоматического создания списка файлов для линковки независимого EXE, как называется не помню, не пользовался, просто видел. |
Автор: | Len [ 03 июл 2017, 07:59 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
У Ивана Денисова про линковку пока ничего не сказано. Насчёт подсистем для автоматического создания списка файлов для линковки независимого EXE сказано в http://oberoncore.ru/wiki/blackbox/make_exe, например Alm01Gather или Bbt. |
Автор: | Len [ 03 июл 2017, 08:32 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Как слинковать WinApi и WinOle? Я так понимаю - они нужны для пользовательского интерфейса. BlackBox их почемуто не может обнаружить, а когда я открываю их исходники из папки Win\Mod и компилирую их, то папки Win\Code не создаётся ![]() |
Автор: | Len [ 03 июл 2017, 09:18 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Напишите, пожалуйста программу с пустой формой, ничего не делающую и как её слинковать. |
Автор: | Zorko [ 04 июл 2017, 22:04 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
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-формы), его меню и т.д. |
Автор: | Len [ 05 июл 2017, 06:27 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Где можно почитать подробнее про WinApi? Какой-нибудь справочник по функциям, какая что значит. |
Автор: | S.Atan [ 05 июл 2017, 10:29 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Len у меня вопрос - вы хотите сделать приложение или какая цель вообще преследуется? Почему именно BB? |
Автор: | Len [ 05 июл 2017, 10:38 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Я хочу писать и затем продавать маленькие приложения, расчитывающие электрические цепи. Тут не обязательно BB. Но он меня привлёк наличием русской документации к модулям. Мне также понравился язык Оберон своей компактностью, по сравнению например с C#. |
Автор: | S.Atan [ 05 июл 2017, 15:15 ] |
Заголовок сообщения: | Re: Как собрать (слинковать) форму в EXE? |
Если на ББ, то маленькие не получатся!!! Придеться таскать с собой весь фреймворк... Как VB + dll + ocx с приложением... Либо упаковывать всё это в архивы... Если на WinApi или LinApi (под платформы, то вам придется делать свои контролы и компоненты).. Как пример viewtopic.php?f=15&t=268&start=10#p1606 Тут я полностью отрисовывал контролы на форме + делал свою микроVCL библиотеку... Кнрпочки, скроллбары, тоолбары и т.д... Вообщем, если нативные приложения, то всё в ручную... Но позволяет разобраться в структуре и реализации GUI приложений!!! |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |