Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
ВнизBPL Найти похожие ветки
← →
savyhinst © (2008-04-06 20:37) [0]Здраствуйте.
Подскажите пожалуста, где можно найти подробное описание работы bpl на русском языке.
Спасибо за внимание.
← →
Palladin © (2008-04-06 20:45) [1]а какой именно bpl ?
← →
savyhinst © (2008-04-06 20:52) [2]да ш.з. я думал, он один - пакеты там какие-то...
← →
Palladin © (2008-04-06 20:54) [3]так вот иди в гугл и набери в поиске "что такое bpl" ну и "delphi" еще можешь добавить
← →
savyhinst © (2008-04-06 21:15) [4]Так я искал, и если бы нашёл, то бы не написал бы сюда бы.
← →
Loginov Dmitry © (2008-04-06 21:37) [5]> Подскажите пожалуста, где можно найти подробное описание
> работы bpl на русском языке.
Тебе нужно именно подробное "описание работы bpl" или вообще "что такое bpl"? От подробного описания крыша съедет. А понятие пакетов можно черпануть у Арханельского (только в последних версиях, так как в первоначальных вместо объяснения была нелепая каша). Либо же более настойчиво мучай гугл! Наверняка ведь ответит, зараза! ;)
← →
savyhinst © (2008-04-06 21:44) [6]Мне нужно "что такое" и "как использовать", а внутренние механизмы - нет.
← →
DrPass © (2008-04-06 22:08) [7]
> "что такое"
Внутри это обычная DLL. Только секции экспорта и импорта для нее автоматически генерируются компилятором. На "экспорт" идут методы содержащихся в ней классов, процедуры и функции из секции interface ее модулей, а также секции инициализации и финализации. Импортируются автоматически такие же процедуры/функции/методы из используемых в ней модулей из других пакетов.
Как использовать... ну, или автоматически - поставить в опциях пакета галочку Build with runtime packages, и вписать туда свою БПЛ, или грузить вручную - через LoadPackage (шо аналогично LoadLibrary + вызов секций инициализации)
← →
Loginov Dmitry © (2008-04-07 00:21) [8]Пакеты имеет смысл использовать при разработке приложения, состоящего из множества модулей (например EXE и DLL). Сам BPL-пакет также можно рассматривать в виде модуля. Допустим, у тебя есть группа проектов, включающая головное приложение и несколько DLL-лек. Скомпилируй каждый из модулей с включенной галкой "Build with runtime packages", и ты получишь следующие преимущества:
1) твои модули значительно уменьшатся в размере, т.к. из них будет исключен код реализации стандартных классов VCL (весь код будет подгружаться из соответствующих bpl-пакетов, например vclxx.bpl, rtlxx.bpl).
2) все переменные и реализация функций стандартных модулей также будут исключены из твоих модулей - они будут браться из соответствующих bpl-пакетов.
3) посколько System.pas - это стандартный модуль, в котором реализован менеджер памяти Delphi, то менеджер памяти точно также окажется в bpl-пакете.
4) EXE и все DLL-ки будут совместно использовать только одну копию каждого пакета, поэтому все переменные и все классы, находящиеся в BPL-пакетах, становятся общими. Если ты изменяешь, скажем, DecimalSeparator в EXE, то данное изменение коснется и всех DLL-лек.
5) Общими становятся 2 важнейших переменных VCL - Application и Screen, благодаря чему автоматически исчезают ВСЕ проблемы, с которыми можно столкнуться при использовании VCL-форм в DLL (это не означает, что проблему невозможно выдумать искусстенно).
При сборке с пакетами необходимо проследить, чтобы ни в одном проекте с секциях USES не упоминался модуль ShareMem. В Delphi 7 его можно было использовать параллельно со сборкой с пакетами, но начиная с Delphi 2006 такое недопустимо.
Но не все так радужно. При таком подходе к разработке имеются достаточно серьезные проблемы. Допустим, в организации работают 5 программистов, разрабатывают некую навороченную систему на Delphi7 с использованием BPL-пакетов. Организации для успешного развития системы необходимо принять еще 1 программиста. Но как? Лицензионной Delphi 7 уже не купить! Поэтому выбора 2 - либо не брать еще 1 программиста, либо купить 6 копий Delphi2007 Enterprise Edition. А при отказе от использования пакетов на начальном этапе разработки системы такой проблемы бы заведомо не возникло. Не знаю, будет ли касаться данная проблема Delphi2006/Delphi2007. Радует то, что при использовании D2006 можно закупать D2007 - они совместимы друг с другом в плане BPL-пакетов. Но что будет в D2008 и дальше - неизвестно...
← →
Palladin © (2008-04-07 00:46) [9]угу... двумя словами: общий с хост-приложением менеджер памяти и RTTI, со всеми отсюда вытекающими приятными последствиями. вот только аффтар ничего из сказанного не понял... но это не беда, есть множество других :) понимающих
← →
DrPass © (2008-04-07 02:45) [10]
> Поэтому выбора 2 - либо не брать еще 1 программиста, либо
> купить 6 копий Delphi2007 Enterprise Edition
На самом деле выбора 3. Купить одну копию Delphi 2007, дабы иметь шесть честных коробок, ну а программиста все-таки посадить за левую копию D7 и не страдать от мук совести. Хотя эта политика КодеЖира/Борланда вызывает недоумение. Даже Майкрософт разрешает делать даунгрейд продуктов, если так надо клиенту...
← →
Германн © (2008-04-07 04:01) [11]
> Даже Майкрософт разрешает делать даунгрейд продуктов, если
> так надо клиенту...
>
Монополисты, блин. :)))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c