Che cos'è il formato di file BPL?
.bpl è un file Borland Package Library - una DLL di Windows specializzata utilizzata da Embarcadero Delphi e C++Builder per distribuire pacchetti di componenti riutilizzabili. Introdotto con Delphi 3, il sistema di pacchetti consente ai componenti VCL e FireMonkey di essere condivisi tra più applicazioni in fase di esecuzione (runtime) invece di essere collegati staticamente in ogni eseguibile.
Strutturalmente, un file .bpl è un file Windows PE (Portable Executable) .dll standard, identificabile dall'intestazione MZ, con una sezione di risorse PACKAGEINFO aggiuntiva che elenca le unità Delphi contenute nel pacchetto. Ne esistono di due tipi: runtime packages, distribuiti insieme a un'applicazione e caricati all'avvio (ad esempio, vcl280.bpl viene fornito con le applicazioni Delphi 11), e design-time packages, che registrano i componenti nell'IDE e non vengono mai spediti agli utenti finali.
I file .bpl non sono portabili tra le versioni del compilatore Delphi: un pacchetto compilato per Delphi 10 Seattle non verrà caricato in Delphi 11 Alexandria e deve essere ricompilato. Ogni pacchetto ha file complementari: un .dcp (Delphi Compiled Package) contenente i metadati del linker e, per C++Builder, una libreria di importazione .bpi. Il progetto sorgente del pacchetto è memorizzato in un file .dpk.
Poiché i file .bpl sono DLL di Windows valide, gli strumenti PE standard come Dependency Walker possono ispezionare le loro importazioni ed esportazioni. Vengono caricati in runtime tramite la chiamata standard di Windows LoadLibrary.
Sicurezza e incolumità
RISCHIO: MEDIUMI file BPL sono DLL; un BPL malevolo inserito in una directory dell'applicazione potrebbe eseguire codice arbitrario tramite DLL hijacking. Installa solo file BPL da fornitori di componenti Delphi affidabili. L'errore «file BPL mancante» spinge alcuni utenti a scaricare file BPL da siti non ufficiali - evita questi siti.
Dettagli del formato
in sintesi- Pacchetto plugin Symbian OS/Nokia - Alcuni strumenti di sviluppo Symbian/Nokia utilizzavano anche .bpl per pacchetti firmware o plugin; non correlato a Delphi.
Programmi che aprono file BPL
Dettagli tecnici
specifiche approfondite| Formato binario sottostante | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - intestazione standard Windows PE |
| Ordine dei byte | Little-endian |
| Sezione PE aggiuntiva | Risorsa `PACKAGEINFO` che elenca le unità Delphi/C++Builder contenute |
| Tipi di pacchetto | Runtime (distribuito con l'app) e design-time (solo registrazione IDE) |
| Portabilità della versione | Deve essere ricompilato per ogni versione del compilatore - non compatibile tra versioni diverse |
| File complementari | `.dcp` (metadati linker), `.bpi` (libreria di importazione C++Builder), `.dpk` (sorgente pacchetto) |
| Dimensione tipica | 84 KB - 2 MB |
| Piattaforma | Windows (primaria); macOS e Linux tramite pacchetti cross-platform FireMonkey |
| Caricamento in runtime | Standard Windows `LoadLibrary` / `GetProcAddress` |
| Collegamento del compilatore | Tag della versione RTL interna; la mancata corrispondenza della versione causa il fallimento del caricamento all'avvio |
| Ruolo nell'IDE | I pacchetti design-time registrano le icone della tavolozza dei componenti e gli editor di proprietà in RAD Studio |
| Rilasciato | 1997 (Delphi 3 - first version with package support) |
| Ultima versione | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Specifica | docwiki.embarcadero.com |