サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

C++Builder 12.2 の動的パッケージ !

06 dynamic packages in cbuilder 12 2 1600 x 900

RAD Studio 12.2 では、C++ にいくつかの大きな改善が施されています。その 1 つが動的パッケージ (BPL ファイル) の使用と作成の両方をサポートすることによって、いよいよ新しいWindows 64ビットモダンツールチェーンの完成です。

動的パッケージのサポート

RAD Studio 12.1で新しいツールチェーンをリリースした際、VCLおよびFMXアプリケーションのビルドを完全にサポートし、静的ライブラリ、DLL、コンソールアプリケーションの使用や作成もサポートしました。しかし、VCLおよびFMXアプリケーションは、追加のメタデータを持つDLLの一種であるパッケージを多用します。12.1では、これらのパッケージは静的にリンクするしかありませんでした。その結果、実行ファイルが大きくなってしまいました。

12.2では、ご期待通り、パッケージへの動的リンクをサポートしています。これにより、より軽量で小さいサイズのEXEをビルドでき、BPLパッケージファイルとともに配布することができます。

これを有効にするのはとても簡単です。プロジェクトオプション > パッケージ > 実行時パッケージの「実行時パッケージを使ってリンク」にチェックを入れるだけです。

また同じくプロジェクトオプション> ビルド > C++ リンカ の「動的 RTL とリンクする」 にチェックを入れることも推奨します。これらは常に同期を保つ必要があります。内部的には、新しいツールチェーンは設定に関係なくパッケージを使用する際に動的 RTL が有効になるようにしていますが、両者が一致していることを確認することは良い習慣となります。

C++パッケージの作成

あまり使用されていないものの、依然として重要なパッケージ関連の機能として、C++ソースコードを使用してパッケージを作成することが挙げられます。

12.1では、静的リンクのみをサポートしていたため、この機能は存在しませんでした(パッケージへの静的リンクは、事実上、静的ライブラリへのリンクと実質的に同じでした)。現在では、動的パッケージの作成が可能になったため、C++ソースコードを使用したパッケージの作成もサポートしています。これには、 つのパッケージ プロジェクトで C++ と Delphi を混在させることも含まれます。

docwiki にパッケージに関する情報を掲載

パッケージは基本的にDelphiの概念ですが、C++でも利用できます。パッケージの動作や、パッケージ内のクラスの動作、またはdeclspec(package)キーワードを理解する方法について、よく質問を受けます。
12.2でパッケージをビルドする際には、まったく新しい実装を使用しており、これによって従来の Clang コンパイラでパッケージが実装されていた方法の技術的な問題も解決されました。主な問題は、ユニットの初期化と終了の順序に関するもので、ユニットがユニット間およびパッケージ間の依存関係を持つ場合、予期しないAVが発生する可能性がありました。この問題に対処するため、これらのシナリオが確実に動作するように、完全に新しい実装が採用されています。これに伴い、推奨されるベストプラクティスを含む、C++とパッケージに関する新しいDocWikiページがいくつか追加されました。

ついに新しいC++ツールチェーンが完成!

動的パッケージのサポートにより、使用と作成の両方において、従来の Win64 ツールチェーンと完全に同等の機能が得られます。さらに新しいツールチェーンは、言語サポート、互換性、STL、リンカなど、すべてがより優れており、あらゆる面で大幅に改善されています。

このため、12.2では、新しいVCL、FMX、コンソールアプリケーション、新しいDLL、新しい静的ライブラリでは、新しいWindows 64ビットモダンプラットフォームがデフォルトのプラットフォームとなっており、こちらへの移行を推奨します。従来のWin64プラットフォームは、移行を支援するために引き続きインストールされ、並行して利用可能ですが、将来のリリースでは削除される予定です。新しいツールチェーンであるBcc64xは、将来だけでなく、現在も利用可能です!

モバイルバージョンを終了