BPL ファイル形式とは?
.bpl は Borland Package Library ファイルです。これは Embarcadero Delphi および C++Builder が再利用可能なコンポーネントパッケージを配布するために使用する、特殊な Windows DLL です。Delphi 3 で導入されたこのパッケージシステムにより、VCL や FireMonkey コンポーネントをすべての実行ファイルに静的にリンクするのではなく、実行時に複数のアプリケーション間で共有することが可能になります。
構造的には、.bpl ファイルは標準的な Windows PE (Portable Executable) .dll であり、MZ ヘッダーによって識別されます。さらに、パッケージに含まれる Delphi ユニットをリストした PACKAGEINFO リソースセクションが追加されています。これには2つのタイプがあります。1つは 実行時パッケージ (runtime packages) で、アプリケーションと共に配布され起動時にロードされます(例:Delphi 11 アプリケーションには vcl280.bpl が付属します)。もう1つは 設計時パッケージ (design-time packages) で、IDE にコンポーネントを登録するためのものであり、エンドユーザーに配布されることはありません。
.bpl ファイルは Delphi コンパイラのバージョン間で互換性がありません。Delphi 10 Seattle 用にコンパイルされたパッケージは Delphi 11 Alexandria ではロードできず、再コンパイルが必要です。各パッケージには、リンカのメタデータを含む .dcp (Delphi Compiled Package) や、C++Builder 用の .bpi インポートライブラリなどの関連ファイルがあります。パッケージのソースプロジェクトは .dpk ファイルに保存されます。
.bpl ファイルは有効な Windows DLL であるため、Dependency Walker などの標準的な PE ツールでインポートやエクスポートを検査できます。これらは標準的な Windows の LoadLibrary 呼び出しを介して実行時にロードされます。
セキュリティと安全性
リスク: MEDIUMBPLファイルは DLL です。アプリケーションディレクトリに配置された悪意のある BPL は、DLL ハイジャックを介して任意のコードを実行する可能性があります。信頼できる Delphi コンポーネントベンダーの BPLファイルのみをインストールしてください。「BPLファイルが見つかりません」というエラーにより、非公式サイトから BPLファイルをダウンロードしようとするユーザーがいますが、これらは避けてください。
形式の詳細
概要- Symbian OS/Nokia プラグインパッケージ - 一部の Symbian/Nokia 開発ツールもファームウェアやプラグインパッケージに .bpl を使用していましたが、Delphi とは無関係です。
BPL ファイルを開くプログラム
技術的詳細
詳細仕様| 基盤となるバイナリ形式 | Windows PE (Portable Executable) DLL |
| マジックバイト | `MZ` (4D 5A) - 標準 Windows PE ヘッダー |
| バイト順序 | リトルエンディアン |
| 追加の PE セクション | 含まれる Delphi/C++Builder ユニットをリストする `PACKAGEINFO` リソース |
| パッケージの種類 | 実行時(アプリと配布)および設計時(IDE 登録のみ) |
| バージョンの移植性 | コンパイラのバージョンごとに再コンパイルが必要 - バージョン間の互換性なし |
| 関連ファイル | `.dcp` (リンカメタデータ), `.bpi` (C++Builder インポートライブラリ), `.dpk` (パッケージソース) |
| 一般的なサイズ | 84 KB - 2 MB |
| プラットフォーム | Windows (メイン); FireMonkey クロスプラットフォームパッケージを介した macOS および Linux |
| 実行時のロード | 標準 Windows `LoadLibrary` / `GetProcAddress` |
| コンパイラリンケージ | 内部 RTL バージョンタグ。バージョンの不一致は起動時のロード失敗の原因となります |
| IDE での役割 | 設計時パッケージは、RAD Studio のコンポーネントパレットアイコンとプロパティエディタを登録します |
| リリース日 | 1997 (Delphi 3 - first version with package support) |
| 最新バージョン | RAD Studio 13 Florence (2025); BPL format stable since Delphi 3 |
| 仕様書 | docwiki.embarcadero.com |