Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
15-1205303786
SKIPtr
2008-03-12 09:36
2008.05.04
Помогите выбрать вентилятор


2-1207724584
ЛИЯ
2008-04-09 11:03
2008.05.04
как правильно задать фильтр


15-1205743389
REA
2008-03-17 11:43
2008.05.04
GPS перехват


15-1205880891
builder
2008-03-19 01:54
2008.05.04
Работа с сокетами в общем


2-1207421999
lewka-serdceed
2008-04-05 22:59
2008.05.04
Процессы в памяти