Hvad er BPL-filformatet?
.bpl er en Borland Package Library-fil - en specialiseret Windows DLL, der bruges af Embarcadero Delphi og C++Builder til at distribuere genanvendelige komponentpakker. Pakkesystemet, der blev introduceret med Delphi 3, gør det muligt for VCL- og FireMonkey-komponenter at blive delt på tværs af flere applikationer under kørsel (runtime) i stedet for at blive statisk linket ind i hver eksekverbar fil.
Strukturelt set er en .bpl-fil en standard Windows PE (Portable Executable) .dll, der kan identificeres ved MZ-headeren, med en ekstra PACKAGEINFO-ressourcesektion, der viser de Delphi-enheder, pakken indeholder. Der findes to typer: runtime-pakker, der distribueres sammen med en applikation og indlæses ved opstart (for eksempel følger vcl280.bpl med Delphi 11-applikationer), og design-time-pakker, som registrerer komponenter i IDE'et og aldrig sendes til slutbrugere.
.bpl-filer er ikke portable mellem Delphi-compilerversioner: en pakke kompileret til Delphi 10 Seattle vil ikke kunne indlæses i Delphi 11 Alexandria og skal rekompileres. Hver pakke har ledsagefiler: en .dcp (Delphi Compiled Package), der indeholder linker-metadata, og for C++Builder et .bpi-importbibliotek. Pakkens kildeprojekt gemmes i en .dpk-fil.
Da .bpl-filer er gyldige Windows DLL'er, kan standard PE-værktøjer som Dependency Walker inspicere deres imports og exports. De indlæses under kørsel via det standard Windows LoadLibrary-kald.
Sikkerhed og tryghed
RISIKO: MEDIUMBPL-filer er DLL'er; en ondsindet BPL placeret i en applikationsmappe kan eksekvere vilkårlig kode via DLL-hijacking. Installer kun BPL-filer fra betroede Delphi-komponentleverandører. Fejlen «BPL-fil mangler» får nogle brugere til at downloade BPL-filer fra uofficielle sider - undgå disse.
Formatdetaljer
kort fortalt- Symbian OS/Nokia plugin-pakke - Nogle Symbian/Nokia-udviklingsværktøjer brugte også .bpl til firmware- eller plugin-pakker; ikke relateret til Delphi.
Programmer der åbner BPL-filer
Tekniske detaljer
dyb specifikation| Underliggende binært format | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - standard Windows PE-header |
| Byte-orden | Little-endian |
| Ekstra PE-sektion | `PACKAGEINFO`-ressource, der viser indeholdte Delphi/C++Builder-enheder |
| Pakketyper | Runtime (distribueret med app) og design-time (kun til IDE-registrering) |
| Versionsportabilitet | Skal rekompileres for hver compilerversion - ikke kompatibel på tværs af versioner |
| Ledsagefiler | `.dcp` (linker-metadata), `.bpi` (C++Builder-importbibliotek), `.dpk` (pakkekilde) |
| Typisk størrelse | 84 KB - 2 MB |
| Platform | Windows (primær); macOS og Linux via FireMonkey cross-platform pakker |
| Runtime-indlæsning | Standard Windows `LoadLibrary` / `GetProcAddress` |
| Compiler-linkage | Intern RTL-versionstag; versionskonflikt forårsager indlæsningsfejl ved opstart |
| IDE-rolle | Design-time-pakker registrerer komponent-palette-ikoner og property-editors i RAD Studio |
| Udgivet | 1997 (Delphi 3 - first version with package support) |
| Seneste version | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Specifikation | docwiki.embarcadero.com |