Hva er BPL-filformatet?
.bpl er en Borland Package Library-fil - et spesialisert Windows DLL som brukes av Embarcadero Delphi og C++Builder for å distribuere gjenbrukbare komponentpakker. Pakkesystemet ble introdusert med Delphi 3 og tillater at VCL- og FireMonkey-komponenter deles på tvers av flere applikasjoner ved kjøretid, i stedet for å bli statisk lenket inn i hver kjørbare fil.
Strukturelt sett er en .bpl-fil en standard Windows PE (Portable Executable) .dll, identifiserbar med MZ-headeren, med en ekstra PACKAGEINFO-ressursseksjon som lister opp Delphi-enhetene pakken inneholder. Det finnes to typer: runtime-pakker, som distribueres sammen med en applikasjon og lastes ved oppstart (for eksempel følger vcl280.bpl med Delphi 11-applikasjoner), og design-time-pakker, som registrerer komponenter i IDE-en og aldri sendes til sluttbrukere.
.bpl-filer er ikke portable mellom Delphi-kompilatorversjoner: en pakke kompilert for Delphi 10 Seattle vil ikke kunne lastes i Delphi 11 Alexandria og må kompileres på nytt. Hver pakke har tilhørende filer: en .dcp (Delphi Compiled Package) som inneholder metadata for lenkeren, og for C++Builder en .bpi-importfil. Pakkens kildeprosjekt lagres i en .dpk-fil.
Siden .bpl-filer er gyldige Windows DLL-er, kan standard PE-verktøy som Dependency Walker inspisere deres importer og eksporter. De lastes ved kjøretid via det vanlige Windows LoadLibrary-kallet.
Sikkerhet og trygghet
RISIKO: MEDIUMBPL-filer er DLL-er; en ondsinnet BPL plassert i en applikasjonsmappe kan utføre vilkårlig kode via DLL-kapring. Installer kun BPL-filer fra pålitelige Delphi-komponentleverandører. Feilmeldingen «BPL file missing» får enkelte brukere til å laste ned BPL-filer fra uoffisielle nettsteder - unngå disse.
Formatdetaljer
i et nøtteskall- Symbian OS/Nokia plugin-pakke - Enkelte utviklingsverktøy for Symbian/Nokia brukte også .bpl for fastvare- eller plugin-pakker; ikke relatert til Delphi.
Programmer som åpner BPL-filer
Tekniske detaljer
dyp spesifikasjon| Underliggende binærformat | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - standard Windows PE-header |
| Byterekkefølge | Little-endian |
| Ekstra PE-seksjon | `PACKAGEINFO`-ressurs som lister opp inneholdte Delphi/C++Builder-enheter |
| Pakketyper | Runtime (distribuert med app) og design-time (kun for IDE-registrering) |
| Versjonsportabilitet | Må kompileres på nytt for hver kompilatorversjon - ikke kompatibel på tvers av versjoner |
| Tilhørende filer | `.dcp` (metadata for lenker), `.bpi` (C++Builder importbibliotek), `.dpk` (pakkekilde) |
| Typisk størrelse | 84 KB - 2 MB |
| Plattform | Windows (primær); macOS og Linux via FireMonkey-pakker for flere plattformer |
| Lasting ved kjøretid | Standard Windows `LoadLibrary` / `GetProcAddress` |
| Kompilatorlenking | Intern RTL-versjonstagg; versjonskonflikt fører til feil ved lasting under oppstart |
| IDE-rolle | Design-time-pakker registrerer komponentpalett-ikoner og egenskapsredigerere i RAD Studio |
| Utgitt | 1997 (Delphi 3 - first version with package support) |
| Siste versjon | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Spesifikasjon | docwiki.embarcadero.com |