|
|
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Здраствуйте, где можно получить описания о строение bpl файлах ??? Достаточно любой документации где хотя бы менее понятно куда рыть, что бы их загружать без галочки рунтайма в настройках проекта. Очень нужно, что бы это был отдельный bpl не зависающий от внешних файлов .. И если нужно, то бы он из основного exe подгружал необходимый код. 1) Как bpl удаётся хранить информацию о типах ??? 2) Как такую информацию считывать ?? RTTI ?? - Получение ссылки на класс и передачи в (TRttiContext.GetType(RttiType(self).ClassInfo)) ? А что же делать, если он попросить какие то классы \ которые не запакованы в bpl (и не должны, а должны быть только в exe) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:09:51 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикДостаточно любой документации где хотя бы менее понятно куда рыть, что бы их загружать без галочки рунтайма в настройках проекта. Открой для себя штатную документацию на SysUtils.LoadPackage и далее везде. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:12:20 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Няшик, tdump.exe bpl-файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:21:06 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикА что же делать, если он попросить какие то классы \ которые не запакованы в bpl (и не должны, а должны быть только в exe) ? Сделать третий, общий BPL, в котором эти базовые классы будут описаны, и который будет использоваься и в EXE и в BPL из вышего запроса Именон так и построена VCL на базе которой написана Delphi IDE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:25:35 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикОчень нужно, что бы это был отдельный bpl не зависающий от внешних файлов .. И если нужно, то бы он из основного exe подгружал необходимый код. тебе придется выкинуть RTL и VCL и вместо них написать свои библиотеки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:31:52 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
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 библиотеку как без внешних файлов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:35:29 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикРазве нет другого способа подгрузить bpl библиотеку как без внешних файлов ? Есть Не использовать в ней никаких типов процедур и классов и других BPLей. Не использовать модуль SysUtils, не использовать модуль Classes и так далее В общем на практике сведется к "переписывать VCL и RTL" Более того, теперь этих копии твоих замен будут в каждой твоей такой BPLке Ты не хочешь держать отдельную 10-мегабайтную RTL ? Ну в результате ты те же 10 мегабайт вкомпилируешь внутрь твоей BPLки. Причем внутрь КАЖДОЙ твоей BPLки по копии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:39:14 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Есть, впрочем, вариант не исползовать BPL вообще, а писать DLL'и работающие через Microsoft COM Но тогда забудь про все классы и строки и прочие тивы - будешь использовать только существующие в Microsoft COM типы - интерфейсы, integer, float, WideString и т.д. В общем, сильно легче не будет. А куски RTL (да, благодаря Smart Linker может быт ьтам будет на 10 мегабайт, а 3 или 7 или 6 как повезёт) по прежнему будешь копировать в КАЖДУЮ DLL и зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:42:04 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикКогда приложение в конечном итоге, может получиться в 2 мб тогда не делай своб отдельную BPL вообще, и вопроса не возникнет все что тебе нужно - включай в EXE и пусть никаких BPL не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:43:40 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Arioch, Да, чуть была другая. Что бы все нужные модули, те самые vcl он подключал из самого exe .... И если в самом exe, нету нужного, который требует пакет - он бы искал пакет с нужным юнитом... А есть какой нибудь бесплатный компилятор Delphi ?? Который бы смог собрать все нужные мне ресурсы, не нарушая ничего в распространение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:45:39 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Ariochтогда не делай своб отдельную BPL вообще, и вопроса не возникнет Я делаю что - то вроде среды разработке, и там должен быть какой то компилятор ресурсов. Например пользователю не нужен пакет компонентов B но нужен A и что бы не хранить все пакеты компонентов в одном exe, надо придумать способ компиляции, или типа того... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:47:50 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикА есть какой нибудь бесплатный компилятор Delphi ? ну есть до 9 сентября бесплатный Delphi 10.1 Starter есть разные дистрибутивы а основе Лазаря, но там не вполне Дельфи НяшикКоторый бы смог собрать все нужные мне ресурсы Что в имеете в виду ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:13:54 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Няшикдолжен быть какой то компилятор ресурсов каких ресурсов? картинок? кладите их в zip вот и все компиляция ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:14:27 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикЯ делаю что - то вроде среды разработке для среды разработки сейгодня плюс-мингус 10 мегабайт не пишут сейчас веб-странички занимают по мегабайту.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:15:28 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Arioch, Имеется введу код, в котором разные компоненты такие как TSynEdit и.т.д. И конечно же уметь помещать картинки и прочее не помещала.. Нашёл статью https://habrahabr.ru/post/113477/ Там говориться про линковщик, возможно можно сразу откомпилировать все файлики в obj и потом их слинковывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:16:54 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
AriochНяшикЯ делаю что - то вроде среды разработке для среды разработки сейгодня плюс-мингус 10 мегабайт не пишут сейчас веб-странички занимают по мегабайту.... У меня персональная среда, с PHP7 - Delphi и его RTTI =)) (на скриншоте пример) Среда есть, но она компилировать не умеет, а сама она весит со всеми компонентами около 40 мб.. Печально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:18:39 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикЧто бы все нужные модули, те самые 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КБ Вы сейчас доминиатюризируетесь до проблем на ровном месте. Не стоит оно того, не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:23:02 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Чтобы работать с BPL, надо на каждую машину ставить BPL тех классов, которые используется. Это порядка 50 файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:23:16 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикНашёл статью 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 и использовать свои библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:26:12 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
НяшикИмеется введу код, в котором разные компоненты такие как TSynEdit и.т.д. Делайте монолитные EXE в которых вообще нет ни-ка-ких BPL Ровно так работали Delphi версий 1 и 2 и Лазарь до сих пор. Добавил компоненту - пересобираешь IDE в новый EXE Удалил - пресобираешь. Точнее в Delphi пресобиралась не среда, а одна мега-DLL, в которой жили ВСЕ компоненты. Но суть та же самая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:28:33 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Няшиксама она весит со всеми компонентами около 40 мб сегодня одна веб-страничка весит от пол-мегабайта и до 2-3. Твоя среда весит меньбше сотни веб=страничек. Не вижу о чем печалиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:29:30 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
И вообще ты пытаешься изобрести клон Smart Mobile Studio Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:30:14 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
AriochХорошая статья Да, на мой взгляд тоже. До этого я тока слышал что можно скомпилировать obj файлы, а что бы так легко - нет))) Это решает мою проблему, я предполагаю. Так что всем спасибо :)) Извините, за поднятие темы на пустом месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:32:18 |
|
||
|
Bpl файлики
|
|||
|---|---|---|---|
|
#18+
Встречный вопрос - сколько весит виртуальная машина PHP7 с базовой своей RTL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:32:35 |
|
||
|
|

start [/forum/search_topic.php?author=HatefulForums&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 645ms |
| total: | 838ms |

| 0 / 0 |
