BPL vs. DLL Delphi programmeerimisrakendustes

click fraud protection

Delfi rakenduse kirjutamisel ja kompileerimisel genereerime tavaliselt käivitatava faili - iseseisva Windowsi rakenduse. Erinevalt näiteks Visual Basicust Delphi toodab kompaktsesse exe-faili pakitud rakendused, kus pole vaja mahukaid käitusajakogu (DLL).

Proovige seda: käivitage Delphi ja kompileerige see vaikeprojekt ühe tühja vormiga, see loob käivitatava faili umbes 385 KB (Delphi 2006). Nüüd minge projekti - Valikud - Paketid ja märkige ruut „Ehita käituspakettidega”. Kompileeri ja jookse. Voila, exe suurus on nüüd umbes 18 KB.

Vaikimisi on ruut 'Ehita käituspakettidega' märkimata ja iga kord, kui me Delphi rakendust loome, seob kompilaator kogu koodi, mida teie rakendus vajab otse teie rakenduse käivitatav fail. Teie rakendus on iseseisev programm ja ei vaja mingeid tugifaile (nt DLL) - sellepärast on Delphi exe rakendused nii suured.

Üks moodus loomiseks väiksemad Delphi programmid on kasutada ära Borlandi paketiraamatukogusid või lühidalt BPL-e.

Mis on pakett?

spetsiaalne dünaamiliste linkide teek, mida kasutavad Delphi rakendused

instagram viewer

Paketid võimaldavad meil paigutada osa oma rakendustest eraldi mooduliteks, mida saab jagada mitme rakenduse vahel. Paketid pakuvad ka vahendeid (kohandatud) komponentide installimiseks Delphi VCL-paleti.

Seetõttu saab Delphi valmistada põhimõtteliselt kahte tüüpi pakette:

  • Käivituspaketid - pakuvad funktsioone, kui kasutaja käivitab rakenduse - need töötavad sarnaselt standardsete DLL-idega.
  • Kujundusaja paketid - kasutatakse komponentide installimiseks Delphi IDE ja kohandatud komponentide jaoks spetsiaalsete omaduste redigeerijate loomiseks.
Kujunduspaketid

Sellest hetkest alates käsitletakse selles artiklis käivituspakette ja seda, kuidas nad saavad Delphi programmeerijaid aidata.

Üks vale mit: te ei pea olema a Delphi komponentide arendaja pakettide ärakasutamiseks. Algajad Delphi programmeerijad peaksid proovima pakettidega töötamist - nad saavad paremini aru pakettide ja Delphi toimimisest.

Millal ja millal mitte ot Kasutage pakette

Kõige sagedamini kasutatakse DLL-e protseduuride ja funktsioonide kogumina, mida teised programmid saavad kutsuda. Lisaks kohandatud rutiinidega DLL-ide kirjutamisele võime täieliku Delphi-vormi paigutada ka DLL-i (näiteks AboutBoxi vorm). Teine levinud tehnika on DLL-idesse ressursside salvestamine. Lisateavet selle kohta, kuidas Delphi töötab DLL-ide abil, leiate sellest artiklist: DLL ja Delphi.

Enne DLL-i ja BPL-ide võrdlemist peame mõistma kahte koodi käivitatavas koodis linkimiseks: staatiline ja dünaamiline linkimine.

Staatiline ühendamine tähendab, et Delphi projekti kompileerimisel lingitakse kogu teie rakenduse jaoks vajalik kood otse teie rakenduse käivitatavasse faili. Saadud exe fail sisaldab kõigi projekti kaasatud üksuste kogu koodi. Võib öelda, et liiga palju koodi. Vaikimisi kasutab klauslit uue vormiühikute loendi jaoks, mis koosneb rohkem kui 5 ühikust (Windows, Messages, SysUtils, ...). Delphi linker on aga piisavalt nutikas, et linkida projekti minimaalselt kasutatavates ühikutes ainult minimaalne kood. Staatilise linkimisega on meie rakendus eraldiseisev programm ega vaja ühtegi toetavat paketti ega DLL-i (unustage nüüd BDE ja ActiveX komponendid). Delphis staatiline ühendamine on vaikimisi.

Dünaamiline ühendamine on nagu standardsete DLL-idega töötamine. See tähendab, et dünaamiline linkimine pakub funktsionaalsust mitmele rakendused ilma koodi sidumata otse iga rakendusega - kõik vajalikud paketid laaditakse aadressil tööaeg. Dünaamilise linkimise juures on kõige olulisem see, et paketid laaditakse teie rakenduse poolt automaatselt. Pakkide laadimiseks ei pea te koodi kirjutama ega oma koodi muutma.

Märkige lihtsalt projektist | ruut 'Ehita käituspakettidega' Valikute dialoogiboks. Järgmine kord, kui oma rakendust loote, lingitakse projekti kood dünaamiliselt käituspakettidega, selle asemel et üksused lingida staatiliselt teie käivitatavasse faili.

instagram story viewer