BPL vs. DLL i Delphi-programmeringsprogram

click fraud protection

När vi skriver och sammanställer ett Delphi-program genererar vi vanligtvis en körbar fil - ett fristående Windows-program. Till skillnad från Visual Basic, till exempel, Delphi producerar applikationer inslagna i kompakta exe-filer, utan behov av skrymmande runtime-bibliotek (DLL).

Prova detta: starta Delphi och kompilera det standardprojektet med en blank form, detta kommer att producera en körbar fil på cirka 385 kB (Delphi 2006). Gå nu till Projekt - Alternativ - Paket och markera kryssrutan "Bygg med runtime-paket". Kompilera och springa. Voila, exestorleken är nu cirka 18 kB.

Som standard är 'Bygg med runtime-paket' inte markerat och varje gång vi skapar en Delphi-applikation länkar kompilatorn all kod som din applikation behöver för att köra direkt till din applikationens körbara fil. Din ansökan är ett fristående program och kräver inga stödfiler (som DLL-filer) - det är därför Delphi exes är så stora.

Ett sätt att skapa mindre Delphi-program är att dra fördel av "Borland-paketbibliotek" eller BPL-kort i korthet.

instagram viewer

Vad är ett paket?

speciellt dynamiskt länkbibliotek som används av Delphi-applikationer

Paket gör det möjligt för oss att placera delar av vår applikation i separata moduler som kan delas över flera applikationer. Paket ger också ett sätt att installera (anpassade) komponenter i Delphis VCL-pallete.

Därför kan i princip två typer av paket tillverkas av Delphi:

  • Run-time-paket - ger funktionalitet när en användare kör en applikation - de fungerar mycket som vanliga DLL-filer.
  • Designtidspaket - används för att installera komponenter i Delphi IDE och att skapa speciella egendomsredigerare för anpassade komponenter.
Designpaket

Från denna punkt kommer den här artikeln att behandla körtidspaket och hur de kan hjälpa Delphi-programmerare.

En fel mit: du behöver inte vara en Delphi-komponentutvecklare att dra fördel av paket. Nybörjare Delphi-programmerare bör försöka arbeta med paket - de får bättre förståelse för hur paket och Delphi fungerar.

När och när Använd inte paket

DLL-filer används oftast som samlingar av procedurer och funktioner som andra program kan ringa. Förutom att skriva DLL-filer med anpassade rutiner, kan vi placera en komplett Delphi-form i en DLL (till exempel en AboutBox-form). En annan vanlig teknik är att lagra bara resurser i DLL-filer. Mer information om hur Delphi arbetar med DLL finns i den här artikeln: DLL-filer och Delphi.

Innan vi går till jämförelse mellan DLL och BPL måste vi förstå två sätt att länka kod i en körbar: statisk och dynamisk länk.

Statisk koppling innebär att när ett Delphi-projekt sammanställs, är all kod som din ansökan kräver direkt kopplad till din applikations körbara fil. Den resulterande exen filen innehåller all kod från alla enheter som är involverade i ett projekt. För mycket kod, kan du säga. Som standard använder man klausul för en ny formenhetslista med mer än 5 enheter (Windows, Meddelanden, SysUtils, ...). Delphi-länken är dock tillräckligt smart för att bara länka minimikoden i enheterna som faktiskt används av ett projekt. Med statisk länkning är vår applikation ett fristående program och kräver inga stödpaket eller DLL-filer (glöm BDE- och ActiveX-komponenter för nu). I Delphi, statisk koppling är standard.

Dynamisk länk är som att arbeta med vanliga DLL-filer. Det vill säga dynamisk länkning ger funktionalitet till flera applikationer utan att binda koden direkt till varje applikation - alla nödvändiga paket laddas på körning. Det bästa med dynamisk länkning är att laddning av paket med din applikation är automatisk. Du behöver inte skriva kod för att ladda paketen, du behöver inte heller byta kod.

Markera bara kryssrutan 'Bygg med runtime-paket' som finns i Project | Alternativ dialogruta. Nästa gång du bygger din applikation kommer projektets kod att kopplas dynamiskt till runtime-paket snarare än att enheter har statiskt kopplat till din körbara fil.

instagram story viewer