はじめたての C++Builder XE3 (EXE 配布の際の注意点)
EXE を C++Builder が導入されていないマシンに持っていて動作させるとエラーが出る場合
C++Builder をもちいてコンパイルおよびビルドをおこなうと「Project?.exe」というファイルが出来上がります。
で、これを C++Builder が導入されていない環境に持って行って動作させると
コンピューターに rtl170.bpl がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
などというメッセージが出てプログラムが異常終了します。
ランタイムライブラリ DLL の配布の必要性
これは仕様でして、この事象に真正面から取り組むためには ランタイムライブラリの配布という行為が必要になります。
が、せっかく C 言語でアプリケーションを開発するのだから、ランタイムライブラリなんてものは配布したくないのが人情です。
ランタイムライブラリなんてものが必要なのは C# や VB.NET 、そして Java なんてあたりだけにとどめたいものですから...
ランタイムライブラリ DLL を必要としない C++Builder アプリケーションのビルド方法
これを回避する手っ取り早い方法は、以下の通りです。
- 「Project?.cbproj」ペインの中の「Project?.exe」のビルド構成を「Debug」から「Release」に変更します。(Debug 版では 別途ランタイム DLL が必要になります)
- 「Project?.cbproj」ペインの中の「Project?.exe」を右クリックして「オプション(P)」を選び、->「パッケージ」->「実行時パッケージ」->「実行時パッケージを使ってリンク」の設定を「false」に設定
- 「Project?.cbproj」ペインの中の「Project?.exe」を右クリックして「オプション(P)」を選び、->「C++ リンカ」->「動的 RTL とリンク」の設定を「false」に設定
ただし、設定変更前にくらべて EXE のサイズが かなり大きくなります。8 MB 以上のオーバーヘッドが必要なようです。でも「DLL 地獄」的な事象に遭遇するリスクが かなり少なくなるため 私はランタイムライブラリ DLL を必要としない EXE 形式によるプログラム配布が妥当であろうと考えています。
ちょっとした C 言語の記述ミスを検出する
C++Builder には CodeGuard という、ちょっとした C 言語の記述ミスを検出する機能があります。デフォルトで OFF になっているので、チャンスがあれば ON にして C 言語の記述ミスを機械検出しましょう。
ざっと調べた範囲でのリンク・メモ
ジェスチャ
アニメーション
FireMonkey のアニメーション
- 総括
- FireMonkey: 設計時、スタイルにアニメーション効果を適用する
- FireMonkey アニメーション効果の使用例
- PDF な説明 (FireMonkey ファーストインプレッション)