¿Qué es el formato de archivo BPL?
.bpl es un archivo Borland Package Library - una DLL de Windows especializada utilizada por Embarcadero Delphi y C++Builder para distribuir paquetes de componentes reutilizables. Introducido con Delphi 3, el sistema de paquetes permite que los componentes VCL y FireMonkey se compartan entre múltiples aplicaciones en tiempo de ejecución en lugar de estar vinculados estáticamente en cada ejecutable.
Estructuralmente, un archivo .bpl es un PE (Portable Executable) de Windows estándar .dll, identificable por la cabecera MZ, con una sección de recursos PACKAGEINFO adicional que enumera las unidades de Delphi que contiene el paquete. Existen dos tipos: paquetes de tiempo de ejecución (runtime), distribuidos junto con una aplicación y cargados al inicio (por ejemplo, vcl280.bpl se incluye con las aplicaciones de Delphi 11), y paquetes de tiempo de diseño, que registran componentes en el IDE y nunca se envían a los usuarios finales.
Los archivos .bpl no son portátiles entre versiones del compilador de Delphi: un paquete compilado para Delphi 10 Seattle no se cargará en Delphi 11 Alexandria y debe ser recompilado. Cada paquete tiene archivos complementarios: un .dcp (Delphi Compiled Package) que contiene metadatos del enlazador, y para C++Builder una biblioteca de importación .bpi. El proyecto fuente del paquete se almacena en un archivo .dpk.
Debido a que los archivos .bpl son DLL de Windows válidas, las herramientas PE estándar como Dependency Walker pueden inspeccionar sus importaciones y exportaciones. Se cargan en tiempo de ejecución a través de la llamada estándar de Windows LoadLibrary.
Seguridad y protección
RIESGO: MEDIUMLos archivos BPL son DLL; un BPL malicioso colocado en un directorio de aplicación podría ejecutar código arbitrario mediante el secuestro de DLL. Solo instale archivos BPL de proveedores de componentes de Delphi de confianza. El error «falta el archivo BPL» incita a algunos usuarios a descargar archivos BPL de sitios no oficiales; evite estos.
Detalles del formato
en pocas palabras- Paquete de complementos de Symbian OS/Nokia - Algunas herramientas de desarrollo de Symbian/Nokia también utilizaban .bpl para paquetes de firmware o complementos; no relacionado con Delphi.
Programas que abren archivos BPL
Detalles técnicos
especificación profunda| Formato binario subyacente | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - cabecera estándar de Windows PE |
| Orden de bytes | Little-endian |
| Sección PE adicional | Recurso `PACKAGEINFO` que enumera las unidades de Delphi/C++Builder contenidas |
| Tipos de paquetes | Runtime (distribuido con la aplicación) y tiempo de diseño (solo registro en el IDE) |
| Portabilidad de versión | Debe ser recompilado para cada versión del compilador - no es compatible entre versiones |
| Archivos complementarios | `.dcp` (metadatos del enlazador), `.bpi` (biblioteca de importación de C++Builder), `.dpk` (fuente del paquete) |
| Tamaño típico | 84 KB - 2 MB |
| Plataforma | Windows (principal); macOS y Linux a través de paquetes multiplataforma FireMonkey |
| Carga en tiempo de ejecución | Llamadas estándar de Windows `LoadLibrary` / `GetProcAddress` |
| Vinculación del compilador | Etiqueta de versión RTL interna; el desajuste de versión provoca fallos de carga al inicio |
| Rol en el IDE | Los paquetes de tiempo de diseño registran iconos de la paleta de componentes y editores de propiedades en RAD Studio |
| Lanzado | 1997 (Delphi 3 - first version with package support) |
| Última versión | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Especificación | docwiki.embarcadero.com |