O que é o formato de ficheiro BPL?
.bpl é um arquivo Borland Package Library - uma DLL especializada do Windows usada pelo Embarcadero Delphi e C++Builder para distribuir pacotes de componentes reutilizáveis. Introduzido com o Delphi 3, o sistema de pacotes permite que componentes VCL e FireMonkey sejam compartilhados entre vários aplicativos em tempo de execução, em vez de serem vinculados estaticamente a cada executável.
Estruturalmente, um arquivo .bpl é um PE (Portable Executable) padrão do Windows .dll, identificável pelo cabeçalho MZ, com uma seção de recurso PACKAGEINFO adicional que lista as unidades Delphi contidas no pacote. Existem dois tipos: pacotes de tempo de execução (runtime), distribuídos junto com um aplicativo e carregados na inicialização (por exemplo, o vcl280.bpl acompanha aplicativos Delphi 11), e pacotes de tempo de design (design-time), que registram componentes na IDE e nunca são enviados aos usuários finais.
Arquivos .bpl não são portáteis entre versões do compilador Delphi: um pacote compilado para o Delphi 10 Seattle não será carregado no Delphi 11 Alexandria e deve ser recompilado. Cada pacote possui arquivos complementares: um .dcp (Delphi Compiled Package) contendo metadados do vinculador e, para o C++Builder, uma biblioteca de importação .bpi. O projeto de origem do pacote é armazenado em um arquivo .dpk.
Como os arquivos .bpl são DLLs válidas do Windows, ferramentas PE padrão, como o Dependency Walker, podem inspecionar suas importações e exportações. Eles são carregados em tempo de execução por meio da chamada padrão LoadLibrary do Windows.
Segurança e proteção
RISCO: MEDIUMArquivos BPL são DLLs; um BPL malicioso colocado em um diretório de aplicativo pode executar código arbitrário via sequestro de DLL (DLL hijacking). Instale apenas arquivos BPL de fornecedores de componentes Delphi confiáveis. O erro «BPL file missing» leva alguns usuários a baixar arquivos BPL de sites não oficiais - evite-os.
Detalhes do formato
em resumo- Pacote de plugin Symbian OS/Nokia - Algumas ferramentas de desenvolvimento Symbian/Nokia também usavam .bpl para pacotes de firmware ou plugins; não relacionado ao Delphi.
Programas que abrem arquivos BPL
Detalhes técnicos
especificação profunda| Formato binário subjacente | Windows PE (Portable Executable) DLL |
| Magic bytes | `MZ` (4D 5A) - cabeçalho padrão Windows PE |
| Ordem dos bytes | Little-endian |
| Seção PE adicional | Recurso `PACKAGEINFO` listando unidades Delphi/C++Builder contidas |
| Tipos de pacote | Runtime (distribuído com o app) e design-time (apenas registro na IDE) |
| Portabilidade de versão | Deve ser recompilado para cada versão do compilador - não é compatível entre versões |
| Arquivos complementares | `.dcp` (metadados do vinculador), `.bpi` (biblioteca de importação C++Builder), `.dpk` (origem do pacote) |
| Tamanho típico | 84 KB - 2 MB |
| Plataforma | Windows (principal); macOS e Linux via pacotes multiplataforma FireMonkey |
| Carregamento em runtime | Padrão Windows `LoadLibrary` / `GetProcAddress` |
| Vinculação do compilador | Tag de versão RTL interna; incompatibilidade de versão causa falha de carregamento na inicialização |
| Papel na IDE | Pacotes de design-time registram ícones da paleta de componentes e editores de propriedades no RAD Studio |
| Lançado | 1997 (Delphi 3 - first version with package support) |
| Versão mais recente | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Especificação | docwiki.embarcadero.com |