Co to jest format pliku BPL?
.bpl to plik Borland Package Library - wyspecjalizowana biblioteka DLL systemu Windows używana przez Embarcadero Delphi i C++Builder do dystrybucji pakietów komponentów wielokrotnego użytku. Wprowadzony wraz z Delphi 3 system pakietów pozwala na współdzielenie komponentów VCL i FireMonkey przez wiele aplikacji w czasie wykonywania (runtime), zamiast statycznego linkowania ich do każdego pliku wykonywalnego.
Strukturalnie plik .bpl to standardowy format Windows PE (Portable Executable) .dll, rozpoznawalny po nagłówku MZ, z dodatkową sekcją zasobów PACKAGEINFO, która zawiera listę jednostek Delphi zawartych w pakiecie. Istnieją dwa typy: pakiety uruchomieniowe (runtime), dostarczane wraz z aplikacją i ładowane przy starcie (na przykład vcl280.bpl jest dostarczany z aplikacjami Delphi 11), oraz pakiety projektowe (design-time), które rejestrują komponenty w IDE i nigdy nie są wysyłane do użytkowników końcowych.
Pliki .bpl nie są przenośne między wersjami kompilatora Delphi: pakiet skompilowany dla Delphi 10 Seattle nie załaduje się w Delphi 11 Alexandria i musi zostać skompilowany ponownie. Każdy pakiet posiada pliki towarzyszące: .dcp (Delphi Compiled Package) zawierający metadane linkera oraz, w przypadku C++Builder, bibliotekę importową .bpi. Projekt źródłowy pakietu jest przechowywany w pliku .dpk.
Ponieważ pliki .bpl są prawidłowymi bibliotekami DLL systemu Windows, standardowe narzędzia PE, takie jak Dependency Walker, mogą sprawdzać ich importy i eksporty. Są one ładowane w czasie wykonywania za pomocą standardowego wywołania Windows LoadLibrary.
Bezpieczeństwo
RYZYKO: MEDIUMPliki BPL to biblioteki DLL; złośliwy plik BPL umieszczony w katalogu aplikacji może wykonać dowolny kod poprzez „DLL hijacking”. Instaluj pliki BPL wyłącznie od zaufanych dostawców komponentów Delphi. Błąd „brak pliku BPL” skłania niektórych użytkowników do pobierania plików z nieoficjalnych stron - należy tego unikać.
Szczegóły formatu
w pigułce- Pakiet wtyczek Symbian OS/Nokia - Niektóre narzędzia programistyczne Symbian/Nokia również używały rozszerzenia .bpl dla oprogramowania układowego lub pakietów wtyczek; nie są one powiązane z Delphi.
Programy otwierające pliki BPL
Szczegóły techniczne
specyfikacja| Podstawowy format binarny | Windows PE (Portable Executable) DLL |
| Magiczne bajty | `MZ` (4D 5A) - standardowy nagłówek Windows PE |
| Kolejność bajtów | Little-endian |
| Dodatkowa sekcja PE | Zasób `PACKAGEINFO` zawierający listę jednostek Delphi/C++Builder |
| Typy pakietów | Uruchomieniowe (dostarczane z aplikacją) i projektowe (tylko do rejestracji w IDE) |
| Przenośność wersji | Musi być skompilowany ponownie dla każdej wersji kompilatora - brak kompatybilności międzywersyjnej |
| Pliki towarzyszące | `.dcp` (metadane linkera), `.bpi` (biblioteka importowa C++Builder), `.dpk` (źródło pakietu) |
| Typowy rozmiar | 84 KB - 2 MB |
| Platforma | Windows (główna); macOS i Linux poprzez wieloplatformowe pakiety FireMonkey |
| Ładowanie w czasie wykonywania | Standardowe funkcje Windows `LoadLibrary` / `GetProcAddress` |
| Powiązanie z kompilatorem | Wewnętrzny znacznik wersji RTL; niezgodność wersji powoduje błąd ładowania przy starcie |
| Rola w IDE | Pakiety projektowe rejestrują ikony palety komponentów i edytory właściwości w RAD Studio |
| Wydano | 1997 (Delphi 3 - first version with package support) |
| Najnowsza wersja | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| Specyfikacja | docwiki.embarcadero.com |