Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.006 c
2-1207568244
azamatufa
2008-04-07 15:37
2008.05.04
Редактирование даты в БД


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


15-1206100907
Bober_crazy
2008-03-21 15:01
2008.05.04
Простейший вопрос по PHP


2-1207566901
assassin8899
2008-04-07 15:15
2008.05.04
DBNavigator


2-1207548421
031178
2008-04-07 10:07
2008.05.04
Обновление таблички





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский