BPL vs. DLL v programih za programiranje Delphi

Ko pišemo in sestavljamo aplikacijo Delphi, običajno generiramo izvedljivo datoteko - samostojno aplikacijo Windows. Za razliko od Visual Basic npr. Delphi proizvaja aplikacije, zavite v kompaktne datoteke exe, brez potrebe po obsežnih knjižnicah izvajanja (DLL).

Poskusite to: zaženite Delphi in sestavite ta privzeti projekt z enim praznim obrazcem, tako bo nastala izvršljiva datoteka, približno 385 KB (Delphi 2006). Zdaj pojdite na Projekt - Možnosti - Paketi in potrdite potrditveno polje »Zgradi z paketom izvajalnega paketa«. Sestavite in zaženite. Voila, velikost exe je zdaj približno 18 KB.

Privzeto je možnost »Zgradi s paketi izvajalnega programa« odkljukano in vsakič, ko naredimo aplikacijo Delphi, prevajalnik poveže vso kodo, ki jo vaša aplikacija zažene neposredno v vašo aplikacijo izvršljiva datoteka aplikacije. Vaša aplikacija je samostojen program in ne potrebuje nobenih podpornih datotek (na primer DLL-jev) - zato je Delphi exe tako velik.

En način ustvarjanja manjši programi Delphi je izkoristiti "knjižnice paketov Borland" ali BPL na kratko.

instagram viewer

Kaj je paket?

posebna knjižnica dinamičnih povezav, ki jo uporabljajo aplikacije Delphi

Paketi nam omogočajo, da del naše aplikacije postavimo v ločene module, ki jih lahko delimo v več aplikacijah. Paketi omogočajo tudi namestitev (prilagojenih) komponent v paleto VCL družbe Delphi.

Zato lahko Delphi v osnovi izdela dve vrsti paketov:

  • Paketi med izvajanjem - zagotavljajo funkcionalnost, ko uporabnik zažene aplikacijo - delujejo podobno kot standardni DLL-ji.
  • Paketi oblikovalskega časa - se uporabljajo za namestitev komponent v Delphi IDE in ustvariti posebne urejevalnike lastnosti za komponente po meri.
Oblikovalni paketi

Od tega trenutka bo ta članek obravnaval pakete izvajanja in kako lahko pomagajo programerju Delphi.

Ena napačna palica: od vas ni treba biti Razvijalec komponent Delphi izkoristiti pakete. Začetni programerji Delphi bi morali poskusiti delati s paketi - bolje bodo razumeli, kako delujejo paketi in Delphi.

Kdaj in kdaj ne uporabljajte paketov

DLL-ji se najpogosteje uporabljajo kot zbirka postopkov in funkcij, ki jih drugi programi lahko pokličejo. Poleg pisanja DLL-jev z rutinami po meri lahko v DLL postavimo celoten obrazec Delphi (na primer obrazec AboutBox). Druga običajna tehnika je shranjevanje ničesar razen virov v DLL-jih. Več informacij o delovanju Delphija z DLL-ji najdete v tem članku: DLL-ji in Delphi.

Pred nadaljevanjem primerjave med DLL in BPL moramo razumeti dva načina povezovanja kode v izvedljiv: statično in dinamično povezovanje.

Statično povezovanje pomeni, da je pri izdelavi projekta Delphi vsa koda, ki jo zahteva vaša aplikacija, neposredno povezana z izvršljivo datoteko vaše aplikacije. Nastala exe datoteka vsebuje vso kodo vseh enot, ki sodelujejo v projektu. Preveč kode, bi lahko rekli. Privzeto uporablja klavzulo za nov seznam enot obrazca z več kot 5 enotami (Windows, Sporočila, SysUtils, ...). Vendar je povezava Delphi dovolj pametna, da poveže le minimalno kodo v enotah, ki jih projekt dejansko uporablja. S statično povezavo je naša aplikacija samostojen program in ne potrebuje nobenih podpornih paketov ali DLL-jev (zaenkrat pozabite BDE in ActiveX komponente). V Delfih je dr. statično povezovanje je privzeto.

Dinamično povezovanje je kot delo s standardnimi DLL-ji. To pomeni, da dinamično povezovanje omogoča funkcionalnost več aplikacije brez vezave kode neposredno na vsako aplikacijo - naloženi so vsi potrebni paketi čas izvajanja. Največja stvar pri dinamičnem povezovanju je, da je nalaganje paketov s strani vaše aplikacije samodejno. Za nalaganje paketov vam ni treba pisati kode, niti vam ni treba spremeniti kode.

Preprosto potrdite polje »Zgradi s paketi izvajalnega programa«, ki ga najdete v projektu | Pogovorno okno z možnostmi. Ko boste naslednjič izdelali aplikacijo, bo koda vašega projekta dinamično povezana s paketi izvajanja, namesto da bi imeli enote statično povezane v izvršljivo datoteko.