Vad är filformatet BPL?
.bpl är en Borland Package Library-fil - en specialiserad Windows DLL som används av Embarcadero Delphi och C++Builder för att distribuera återanvändbara komponentpaket. Paketsystemet introducerades med Delphi 3 och gör det möjligt för VCL- och FireMonkey-komponenter att delas mellan flera applikationer vid körning istället för att länkas statiskt i varje körbar fil.
Strukturellt sett är en .bpl-fil en standard Windows PE (Portable Executable) .dll, identifierbar genom sitt MZ-huvud, med en ytterligare PACKAGEINFO-resurssektion som listar de Delphi-enheter som paketet innehåller. Det finns två typer: runtime-paket, som distribueras tillsammans med en applikation och laddas vid uppstart (till exempel levereras vcl280.bpl med Delphi 11-applikationer), och design-time-paket, som registrerar komponenter i IDE:n och aldrig skickas till slutanvändare.
.bpl-filer är inte portabla mellan olika versioner av Delphi-kompilatorn: ett paket kompilerat för Delphi 10 Seattle kommer inte att laddas i Delphi 11 Alexandria och måste kompileras om. Varje paket har tillhörande filer: en .dcp (Delphi Compiled Package) som innehåller metadata för länkaren, och för C++Builder en .bpi-importbiblioteksfil. Paketets källkodsprojekt lagras i en .dpk-fil.
Eftersom .bpl-filer är giltiga Windows DLL-filer kan standardverktyg för PE, såsom Dependency Walker, inspektera deras importer och exporter. De laddas vid körning via det vanliga Windows-anropet LoadLibrary.
Säkerhet & trygghet
RISK: MEDIUMBPL-filer är DLL-filer; en skadlig BPL som placeras i en applikationskatalog kan köra godtycklig kod via DLL-kapning. Installera endast BPL-filer från betrodda leverantörer av Delphi-komponenter. Felet «BPL-fil saknas» får vissa användare att ladda ner BPL-filer från inofficiella webbplatser - undvik dessa.
Formatdetaljer
i ett nötskal- Symbian OS/Nokia plugin-paket - Vissa utvecklingsverktyg för Symbian/Nokia använde också .bpl för firmware eller plugin-paket; ej relaterat till Delphi.
Program som öppnar BPL-filer
Tekniska detaljer
djup specifikation| Underliggande binärt format | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - standard Windows PE-huvud |
| Byteordning | Little-endian |
| Ytterligare PE-sektion | `PACKAGEINFO`-resurs som listar inkluderade Delphi/C++Builder-enheter |
| Pakettyper | Runtime (distribueras med app) och design-time (endast IDE-registrering) |
| Versionsportabilitet | Måste kompileras om för varje kompilatorversion - inte kompatibel mellan versioner |
| Tillhörande filer | `.dcp` (länkarmetadata), `.bpi` (C++Builder importbibliotek), `.dpk` (paketkällkod) |
| Typisk storlek | 84 KB - 2 MB |
| Plattform | Windows (primär); macOS och Linux via FireMonkey-paket för flera plattformar |
| Laddning vid körning | Standard Windows `LoadLibrary` / `GetProcAddress` |
| Kompilatorlänkning | Intern RTL-versionstagg; versionsfel orsakar laddningsfel vid uppstart |
| IDE-roll | Design-time-paket registrerar ikoner i komponentpaletten och egenskapsredigerare i RAD Studio |
| Släppt | 1997 (Delphi 3 - first version with package support) |
| Senaste version | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Specifikation | docwiki.embarcadero.com |