Wat is het BPL-bestandsformaat?
.bpl is een Borland Package Library-bestand - een gespecialiseerde Windows DLL die door Embarcadero Delphi en C++Builder wordt gebruikt om herbruikbare componentpakketten te distribueren. Geïntroduceerd met Delphi 3, stelt het pakketsysteem VCL- en FireMonkey-componenten in staat om tijdens runtime door meerdere applicaties te worden gedeeld, in plaats van statisch in elk uitvoerbaar bestand te worden gelinkt.
Structureel is een .bpl-bestand een standaard Windows PE (Portable Executable) .dll, herkenbaar aan de MZ-header, met een extra PACKAGEINFO-bronsectie die de Delphi-units in het pakket opsomt. Er bestaan twee typen: runtime-pakketten, die samen met een applicatie worden gedistribueerd en bij het opstarten worden geladen (bijvoorbeeld vcl280.bpl wordt geleverd bij Delphi 11-applicaties), en design-time-pakketten, die componenten in de IDE registreren en nooit naar eindgebruikers worden verzonden.
.bpl-bestanden zijn niet overdraagbaar tussen Delphi-compilerversies: een pakket dat is gecompileerd voor Delphi 10 Seattle zal niet laden in Delphi 11 Alexandria en moet opnieuw worden gecompileerd. Elk pakket heeft bijbehorende bestanden: een .dcp (Delphi Compiled Package) met linker-metadata, en voor C++Builder een .bpi-importbibliotheek. Het bronproject van het pakket wordt opgeslagen in een .dpk-bestand.
Omdat .bpl-bestanden geldige Windows DLL's zijn, kunnen standaard PE-tools zoals Dependency Walker hun imports en exports inspecteren. Ze worden tijdens runtime geladen via de standaard Windows LoadLibrary-aanroep.
Beveiliging & veiligheid
RISICO: MEDIUMBPL-bestanden zijn DLL's; een kwaadaardige BPL die in een applicatiemap wordt geplaatst, kan willekeurige code uitvoeren via DLL-hijacking. Installeer alleen BPL-bestanden van vertrouwde Delphi-componentleveranciers. De foutmelding „BPL-bestand ontbreekt” zet sommige gebruikers aan om BPL-bestanden van onofficiële sites te downloaden - vermijd deze.
Formaatdetails
in een notendop- Symbian OS/Nokia plugin-pakket - Sommige Symbian/Nokia-ontwikkeltools gebruikten ook .bpl voor firmware- of plugin-pakketten; niet gerelateerd aan Delphi.
Programma's die BPL-bestanden openen
Technische details
diepe specificaties| Onderliggend binair formaat | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - standaard Windows PE-header |
| Byte-volgorde | Little-endian |
| Extra PE-sectie | `PACKAGEINFO`-bron die de aanwezige Delphi/C++Builder-units vermeldt |
| Pakkettypen | Runtime (gedistribueerd met app) en design-time (alleen IDE-registratie) |
| Versie-overdraagbaarheid | Moet opnieuw worden gecompileerd voor elke compilerversie - niet compatibel tussen versies |
| Bijbehorende bestanden | `.dcp` (linker-metadata), `.bpi` (C++Builder-importbibliotheek), `.dpk` (pakketbron) |
| Typische grootte | 84 KB - 2 MB |
| Platform | Windows (primair); macOS en Linux via FireMonkey cross-platform pakketten |
| Runtime laden | Standaard Windows `LoadLibrary` / `GetProcAddress` |
| Compiler-koppeling | Interne RTL-versietag; versie-mismatch veroorzaakt laadfout bij opstarten |
| IDE-rol | Design-time-pakketten registreren component-paletpictogrammen en property-editors in RAD Studio |
| Uitgebracht | 1997 (Delphi 3 - first version with package support) |
| Laatste versie | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Specificatie | docwiki.embarcadero.com |