powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Bpl файлики
25 сообщений из 74, страница 1 из 3
Bpl файлики
    #39297964
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте, где можно получить описания о строение bpl файлах ???

Достаточно любой документации где хотя бы менее понятно куда рыть, что бы их загружать без галочки рунтайма в настройках проекта.

Очень нужно, что бы это был отдельный bpl не зависающий от внешних файлов .. И если нужно, то бы он из основного exe подгружал необходимый код.

1) Как bpl удаётся хранить информацию о типах ???
2) Как такую информацию считывать ?? RTTI ??
- Получение ссылки на класс и передачи в (TRttiContext.GetType(RttiType(self).ClassInfo)) ?


А что же делать, если он попросить какие то классы \ которые не запакованы в bpl (и не должны, а должны быть только в exe) ?
...
Рейтинг: 0 / 0
Bpl файлики
    #39297969
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикДостаточно любой документации где хотя бы менее понятно куда рыть, что бы их загружать без
галочки рунтайма в настройках проекта.

Открой для себя штатную документацию на SysUtils.LoadPackage и далее везде.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Bpl файлики
    #39297978
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

tdump.exe bpl-файл
...
Рейтинг: 0 / 0
Bpl файлики
    #39297984
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикА что же делать, если он попросить какие то классы \ которые не запакованы в bpl (и не должны, а должны быть только в exe) ?

Сделать третий, общий BPL, в котором эти базовые классы будут описаны, и который будет использоваься и в EXE и в BPL из вышего запроса

Именон так и построена VCL на базе которой написана Delphi IDE
...
Рейтинг: 0 / 0
Bpl файлики
    #39297988
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикОчень нужно, что бы это был отдельный bpl не зависающий от внешних файлов .. И если нужно, то бы он из основного exe подгружал необходимый код.

тебе придется выкинуть RTL и VCL и вместо них написать свои библиотеки
...
Рейтинг: 0 / 0
Bpl файлики
    #39297998
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНяшикДостаточно любой документации где хотя бы менее понятно куда рыть, что бы их загружать без
галочки рунтайма в настройках проекта.

Открой для себя штатную документацию на SysUtils.LoadPackage и далее везде.




Знаю я про это, но оно не работает, если не стоит галочки в настройках проекта.

AriochНяшикА что же делать, если он попросить какие то классы \ которые не запакованы в bpl (и не должны, а должны быть только в exe) ?

Сделать третий, общий BPL, в котором эти базовые классы будут описаны, и который будет использоваься и в EXE и в BPL из вышего запроса

Именон так и построена VCL на базе которой написана Delphi IDE

Мне бы вообще убрать все зависимости внешние, он же требует ещё RTL библиотеку на 10 мб, и на 2 мб

Когда приложение в конечном итоге, может получиться в 2 мб, а мне придётся таскать целых 12 лишних...

AriochНяшикОчень нужно, что бы это был отдельный bpl не зависающий от внешних файлов .. И если нужно, то бы он из основного exe подгружал необходимый код.

тебе придется выкинуть RTL и VCL и вместо них написать свои библиотеки

Если честно - безумств переписывать VCL и RTL

Разве нет другого способа подгрузить bpl библиотеку как без внешних файлов ?
...
Рейтинг: 0 / 0
Bpl файлики
    #39298001
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикРазве нет другого способа подгрузить bpl библиотеку как без внешних файлов ?

Есть

Не использовать в ней никаких типов процедур и классов и других BPLей.
Не использовать модуль SysUtils, не использовать модуль Classes и так далее

В общем на практике сведется к "переписывать VCL и RTL"

Более того, теперь этих копии твоих замен будут в каждой твоей такой BPLке

Ты не хочешь держать отдельную 10-мегабайтную RTL ?
Ну в результате ты те же 10 мегабайт вкомпилируешь внутрь твоей BPLки.
Причем внутрь КАЖДОЙ твоей BPLки по копии
...
Рейтинг: 0 / 0
Bpl файлики
    #39298004
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть, впрочем, вариант не исползовать BPL вообще, а писать DLL'и работающие через Microsoft COM

Но тогда забудь про все классы и строки и прочие тивы - будешь использовать только существующие в Microsoft COM типы - интерфейсы, integer, float, WideString и т.д.

В общем, сильно легче не будет. А куски RTL (да, благодаря Smart Linker может быт ьтам будет на 10 мегабайт, а 3 или 7 или 6 как повезёт) по прежнему будешь копировать в КАЖДУЮ DLL

и зачем?
...
Рейтинг: 0 / 0
Bpl файлики
    #39298009
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикКогда приложение в конечном итоге, может получиться в 2 мб

тогда не делай своб отдельную BPL вообще, и вопроса не возникнет

все что тебе нужно - включай в EXE и пусть никаких BPL не будет
...
Рейтинг: 0 / 0
Bpl файлики
    #39298011
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Да, чуть была другая. Что бы все нужные модули, те самые vcl он подключал из самого exe .... И если в самом exe, нету нужного, который требует пакет - он бы искал пакет с нужным юнитом...

А есть какой нибудь бесплатный компилятор Delphi ?? Который бы смог собрать все нужные мне ресурсы, не нарушая ничего в распространение
...
Рейтинг: 0 / 0
Bpl файлики
    #39298017
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochтогда не делай своб отдельную BPL вообще, и вопроса не возникнет

Я делаю что - то вроде среды разработке, и там должен быть какой то компилятор ресурсов. Например пользователю не нужен пакет компонентов B но нужен A и что бы не хранить все пакеты компонентов в одном exe, надо придумать способ компиляции, или типа того...
...
Рейтинг: 0 / 0
Bpl файлики
    #39298050
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикА есть какой нибудь бесплатный компилятор Delphi ?

ну есть до 9 сентября бесплатный Delphi 10.1 Starter

есть разные дистрибутивы а основе Лазаря, но там не вполне Дельфи


НяшикКоторый бы смог собрать все нужные мне ресурсы

Что в имеете в виду ?
...
Рейтинг: 0 / 0
Bpl файлики
    #39298052
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшикдолжен быть какой то компилятор ресурсов

каких ресурсов? картинок? кладите их в zip вот и все компиляция
...
Рейтинг: 0 / 0
Bpl файлики
    #39298053
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикЯ делаю что - то вроде среды разработке

для среды разработки сейгодня плюс-мингус 10 мегабайт не пишут

сейчас веб-странички занимают по мегабайту....
...
Рейтинг: 0 / 0
Bpl файлики
    #39298056
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Имеется введу код, в котором разные компоненты такие как TSynEdit и.т.д.

И конечно же уметь помещать картинки и прочее не помещала..

Нашёл статью
https://habrahabr.ru/post/113477/


Там говориться про линковщик, возможно можно сразу откомпилировать все файлики в obj и потом их слинковывать
...
Рейтинг: 0 / 0
Bpl файлики
    #39298058
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochНяшикЯ делаю что - то вроде среды разработке

для среды разработки сейгодня плюс-мингус 10 мегабайт не пишут

сейчас веб-странички занимают по мегабайту....


У меня персональная среда, с PHP7 - Delphi и его RTTI =)) (на скриншоте пример)

Среда есть, но она компилировать не умеет, а сама она весит со всеми компонентами около 40 мб.. Печально
...
Рейтинг: 0 / 0
Bpl файлики
    #39298065
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикЧто бы все нужные модули, те самые vcl он подключал из самого exe

вы МОЖЕТЕ ПОПЫТАТЬСЯ сделать по другому

1. сформировать список модулей, которые нужны всем компонентам и EXE
2. сформировать список модулей и ресурсов, которые нужны модулям из списка 1 и добавить их в список
3. повторять пункт 2 пока список не перестанет расти

4. собрать свой базовый пакет DCP+BPL в котором будут все модули и ресурсы из этого списка

5. попытаться собрать свой EXE и свои BPL с отсылкой к этому вашему модулю и НАДЕЯТЬСЯ, что оно заработает

6. в будущем огрести граблями по лбу когда новая уоучшенная версия Component_A.BPL начнет использовать какой-нибудь модуль, который до этого использовал только Component_B.BPL - в результате оба BPL будут нести по отделной копии этого модуля и загружать их можно будет только по очереди, а не одновременно

----

когда я баловался миниатюризацией на Delphi 5 - я дошёл до того, что сделал плагин для MS Outlook Express - DLL размером 2 КБ
.....и обнаружил, что сделать-то такую DLL можно, вот только Windows не умеет их загружать.
Пришлось придумывать как сделать, чтoбы DLL распухла хотя бы до 4КБ

Вы сейчас доминиатюризируетесь до проблем на ровном месте. Не стоит оно того, не стоит.
...
Рейтинг: 0 / 0
Bpl файлики
    #39298066
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы работать с BPL, надо на каждую машину ставить BPL тех классов, которые используется.
Это порядка 50 файлов.
...
Рейтинг: 0 / 0
Bpl файлики
    #39298069
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикНашёл статью https://habrahabr.ru/post/113477/


Хорошая статья

Путём многочисленных экспериментов, мне удалось уменьшить System.pas до вот такой радости:
unit System;
interface
type
TGUID = Byte;
var
_HandleFinally : Byte;
implementation
end.

Для справки скажу, что _HandleFinally в оригинале является функцией и используется в недрах компилятора, но т.к. мы не хотим, чтобы наш линковщик ругался на неизвестные ему функции, делаем такой «хак» с переменной.

В SysInit.pas я бы порекомендовал включать код вашей демосцены, чтобы не плодить лишний код инициализации кучи unit'ов. А ещё лучше, включить ваш код прямо в секцию инициализации.
unit SysInit;
interface
var
_HandleFinally : Byte;
procedure ExitProcess(uExitCode: Cardinal); stdcall; external 'kernel32.dll' name '_ExitProcess@4';
implementation
initialization
//... код ...
ExitProcess(0);
end.


Это именно то, что я вам с самого начала и посоветовал - выкинуть к чертям RTL и VCL и использовать свои библиотеки.
...
Рейтинг: 0 / 0
Bpl файлики
    #39298072
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикИмеется введу код, в котором разные компоненты такие как TSynEdit и.т.д.

Делайте монолитные EXE в которых вообще нет ни-ка-ких BPL

Ровно так работали Delphi версий 1 и 2 и Лазарь до сих пор.

Добавил компоненту - пересобираешь IDE в новый EXE
Удалил - пресобираешь.

Точнее в Delphi пресобиралась не среда, а одна мега-DLL, в которой жили ВСЕ компоненты. Но суть та же самая
...
Рейтинг: 0 / 0
Bpl файлики
    #39298073
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшиксама она весит со всеми компонентами около 40 мб

сегодня одна веб-страничка весит от пол-мегабайта и до 2-3.

Твоя среда весит меньбше сотни веб=страничек.

Не вижу о чем печалиться.
...
Рейтинг: 0 / 0
Bpl файлики
    #39298074
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще ты пытаешься изобрести клон Smart Mobile Studio

Зачем?
...
Рейтинг: 0 / 0
Bpl файлики
    #39298076
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochХорошая статья

Да, на мой взгляд тоже. До этого я тока слышал что можно скомпилировать obj файлы, а что бы так легко - нет)))

Это решает мою проблему, я предполагаю.


Так что всем спасибо :)) Извините, за поднятие темы на пустом месте
...
Рейтинг: 0 / 0
Bpl файлики
    #39298077
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречный вопрос - сколько весит виртуальная машина PHP7 с базовой своей RTL?
...
Рейтинг: 0 / 0
Bpl файлики
    #39298079
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикЭто решает мою проблему, я предполагаю

Если ты вместо штатной RTL и VCL напишешь свою - то решает.
...
Рейтинг: 0 / 0
25 сообщений из 74, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Bpl файлики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]