BPL vs. DLL în Delphi Aplicații de programare

click fraud protection

Când scriem și compilăm o aplicație Delphi, generăm de obicei un fișier executabil - o aplicație Windows independentă. Spre deosebire de Visual Basic, de exemplu, Delphi produce aplicații învelite în fișiere exe compacte, fără a fi nevoie de biblioteci voluminoase de rulare (DLL-uri).

Încercați acest lucru: începeți Delphi și compilați proiectul implicit cu un formular gol, acesta va produce un fișier executabil de aproximativ 385 KB (Delphi 2006). Acum accesați Proiect - Opțiuni - Pachete și bifați caseta de selectare „Creează cu pachete de rulare”. Compilați și executați. Voila, dimensiunea exe este acum în jur de 18 KB.

În mod implicit, „Construirea cu pachete de rulare” este debifată și de fiecare dată când facem o aplicație Delphi, compilatorul leagă tot codul pe care cereți aplicația dvs. pentru a rula direct la dvs. fișierul executabil al aplicației. Aplicația dvs. este un program autonom și nu necesită fișiere de suport (cum ar fi DLL-urile) - de aceea Delphi exe este atât de mare.

instagram viewer

Un mod de a crea programe mai mici Delphi este să profitați pe scurt de „biblioteci de pachete Borland” sau de BPL-uri pe scurt.

Ce este un pachet?

biblioteca specială de legături dinamice, utilizată de aplicațiile Delphi

Pachetele ne permit să plasăm porțiuni din aplicația noastră în module separate care pot fi partajate în mai multe aplicații. De asemenea, pachetele oferă un mijloc de instalare a componentelor (personalizate) în paleta VCL a Delphi.

Prin urmare, în principiu, două tipuri de pachete pot fi făcute de Delphi:

  • Pachetele pe termen de rulare - oferă funcționalitate atunci când un utilizator rulează o aplicație - funcționează la fel ca DLL-urile standard.
  • Pachete pentru timp de proiectare - utilizate pentru instalarea componentelor în Delphi IDE și pentru a crea editori de proprietăți speciale pentru componente personalizate.
Pachete de proiectare

În acest moment, acest articol se va ocupa de pachetele de rulare și cum pot ajuta programatorul Delphi.

Un mit greșit: nu vi se cere să fiți a Dezvoltator de componente Delphi să profite de pachete. Programatorii începători Delphi ar trebui să încerce să lucreze cu pachete - vor înțelege mai bine modul în care funcționează pachetele și Delphi.

Când și când Nu utilizați pachete

DLL-urile sunt utilizate cel mai frecvent ca colecții de proceduri și funcții pe care le pot apela alte programe. Pe lângă scrierea DLL-urilor cu rutine personalizate, putem plasa un formular Delphi complet într-un DLL (de exemplu, un formular AboutBox). O altă tehnică obișnuită este să nu stocați decât resurse în DLL-uri. Mai multe informații despre modul în care Delphi operează cu DLL-uri găsiți în acest articol: DLL-uri și Delphi.

Înainte de a merge la comparație între DLL-uri și BPL-uri, trebuie să înțelegem două moduri de conectare a codului într-o legătură executabilă: statică și dinamică.

Legătură statică înseamnă că atunci când este compilat un proiect Delphi, tot codul pe care îl solicită aplicația dvs. este direct legat în fișierul executabil al aplicației dvs. Exe rezultat fișierul conține tot codul de la toate unitățile care sunt implicate într-un proiect. Prea multe coduri, s-ar putea spune. În mod implicit, folosește clauza pentru o nouă unitate de listă de mai mult de 5 unități (Windows, Mesaje, SysUtils, ...). Cu toate acestea, linkul Delphi este suficient de inteligent pentru a conecta doar minimul de cod din unitățile utilizate efectiv de un proiect. Cu legarea statică a aplicației noastre este un program autonom și nu necesită pachete sau DLL-uri compatibile (uitați componentele BDE și ActiveX deocamdată). În Delfi, legătura statică este implicit.

Legătură dinamică este ca și cum ai lucra cu DLL-uri standard. Adică conectarea dinamică oferă funcționalitate la mai multe aplicații fără a lega codul direct la fiecare aplicație - toate pachetele necesare sunt încărcate la runtime. Cel mai mare lucru în legătură dinamică este că încărcarea pachetelor de către aplicația dvs. este automată. Nu trebuie să scrii cod pentru a încărca pachetele și nici nu trebuie să-ți schimbi codul.

Pur și simplu bifați caseta de selectare „Construiți cu pachete de rulare” găsite în Proiect | Caseta de dialog Opțiuni. Data viitoare când construiți aplicația, codul proiectului dvs. va fi conectat dinamic la pachetele de rulare, în loc să aibă unități legate static în fișierul dvs. executabil.

instagram story viewer