BPL vs. DLL v programovacích aplikacích Delphi

click fraud protection

Při psaní a kompilaci aplikace Delphi obvykle vytváříme spustitelný soubor - samostatnou aplikaci Windows. Na rozdíl od jazyka Visual Basic například Delphi vyrábí aplikace zabalené do kompaktních souborů exe, bez potřeby objemných runtime knihoven (DLL).

Vyzkoušejte toto: spusťte Delphi a zkompilujte tento výchozí projekt do jednoho prázdného formuláře, čímž vytvoříte spustitelný soubor o přibližně 385 KB (Delphi 2006). Nyní přejděte na Project - Options - Packages a zaškrtněte políčko 'Build with runtime balíčky'. Kompilace a běh. Voila, velikost exe je nyní kolem 18 KB.

Ve výchozím nastavení není zaškrtnuto políčko „Sestavit pomocí runtime balíčků“ a pokaždé, když vytvoříme aplikaci Delphi, kompilátor propojí veškerý kód, který vaše aplikace potřebuje ke spuštění přímo do vaší aplikace. spustitelný soubor aplikace. Vaše aplikace je samostatný program a nevyžaduje žádné podpůrné soubory (například DLL) - proto jsou Delphi exe tak velké.

Jeden způsob vytváření menší Delphi programy je využít „knihoven balíků Borland“ nebo zkrátka BPL.

instagram viewer

Co je to balíček?

speciální dynamická knihovna používaná aplikacemi Delphi

Balíčky nám umožňují umisťovat části naší aplikace do samostatných modulů, které lze sdílet mezi více aplikacemi. Balíčky také poskytují způsob instalace (vlastních) součástí do palety Delphi VCL.

Společnost Delphi proto může v zásadě vyrábět dva typy balíčků:

  • Balíky run-time - poskytují funkčnost, když uživatel spouští aplikaci - fungují podobně jako standardní knihovny DLL.
  • Balíčky v době návrhu - slouží k instalaci součástí do systému Delphi IDE a vytvořit speciální editory vlastností pro vlastní komponenty.
Designové obaly

Od tohoto bodu se tento článek bude zabývat run-time balíčky a jak mohou pomoci Delphi programátorům.

Jeden špatný mit: nemusíte být a Vývojář komponent Delphi využít výhod balíčků. Začátečníci Delphi programátoři by se měli snažit pracovat s balíčky - budou lépe rozumět tomu, jak balíčky a Delphi fungují.

Kdy a kdy nepoužívat balíčky

DLL jsou nejčastěji používány jako kolekce procedur a funkcí, které mohou volat jiné programy. Kromě zápisu DLL pomocí vlastních rutin můžeme do knihovny DLL umístit i úplný formulář Delphi (například formulář AboutBox). Další běžnou technikou je ukládat v knihovnách DLL pouze prostředky. Další informace o tom, jak Delphi pracuje s DLL najdete v tomto článku: DLL a Delphi.

Než začneme porovnávat knihovny DLL a BPL, musíme pochopit dva způsoby propojení kódu ve spustitelném souboru: statické a dynamické propojení.

Statické propojení znamená, že při kompilaci projektu Delphi je veškerý kód, který vaše aplikace vyžaduje, přímo propojen s spustitelným souborem vaší aplikace. Výsledný exe soubor obsahuje veškerý kód ze všech jednotek, které jsou zapojeny do projektu. Řekněte, že je příliš mnoho kódu. Ve výchozím nastavení používá klauzuli pro nový seznam jednotek formuláře více než 5 jednotek (Windows, Zprávy, SysUtils, ...). Linker Delphi je však dostatečně chytrý, aby propojil pouze minimum kódu v jednotkách skutečně používaných v projektu. Při statickém propojení je naše aplikace samostatným programem a nevyžaduje žádné podpůrné balíčky nebo DLL (zapomeňte na komponenty BDE a ActiveX). V Delphi statické propojení je výchozí.

Dynamické propojení je jako pracovat se standardními knihovnami DLL. To znamená, že dynamické propojení poskytuje funkčnost více aplikace bez vazby kódu přímo na každou aplikaci - všechny požadované balíčky jsou načteny do runtime. Největší věc na dynamickém propojení je, že načítání balíčků vaší aplikací je automatické. Nemusíte psát kód pro načtení balíčků, ani nemusíte měnit svůj kód.

Jednoduše zaškrtněte políčko „Sestavit pomocí runtime balíčků“, které se nachází v projektu | Dialogové okno Možnosti. Při příštím sestavení aplikace bude kód projektu dynamicky propojen s běhovými balíčky, namísto statického propojení jednotek do spustitelného souboru.

instagram story viewer