Unicode 版 Delphi (2009 以降) に最新版の Indy10 をインストールする

序論

 Indy はバグが多く、最新版でのみバグが修正されている事が多いです。ところがどっこい、Indy はアップデータの形では提供されず、自前でインストールしなくてはなりません。これが面倒。とにかく面倒。やり方を間違うとインストールができなかったりします。

 バグ報告をしようとすると、こっちの前提は製品版ベースですが、あちらさんはリリースベースなのだそうですよ。こちとらナイトリービルドを追いかけられる程ヒマじゃねーよ。それに Stable は未だに Indy 9 じゃねーか。大体、「最新版インストールせれ」と言いながら、用意されている FullD12.bat がマトモに動作しないってどういう事よ?

 ...気を取り直して。そんな訳で、最新版の導入が必須らしいです。唯一の救いは Indy 10 が Delphi 5 から対応している事です。他にも Kylix や FreePascal に対応しています。

既存の環境のバックアップ

 まず、バックアップフォルダを作成します。"C:\INDY_BACKUP" 等のフォルダを作成し、ここに

 という3つのフォルダを作成しておきます。

 次に Delphi を起動します。

 Delphi 2009 の場合
"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" /pDelphi /ns /np

 Delphi 2010 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" /pDelphi /ns /np

 Delphi XE の場合
"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" /pDelphi /ns /np

 Delphi XE2 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" /pDelphi /ns /np

 Delphi が起動したら [コンポーネント | パッケージのインストール] で

 Delphi 2009 の場合

 Delphi 2010 / XE / XE2 の場合  という2つのパッケージがあるので削除します。

 削除が終わったら、[OK]ボタンを押し、Delphi を終了させます。

 Delphi の "$(BDS)\bin" フォルダに移動し、ここにある "Indy" と名の付くファイルをすべてバックアップフォルダの "bin" へ移動します。具体的には以下のファイル群になります。

 Delphi 2009 の場合

 Delphi 2010 の場合  Delphi XE の場合  Delphi XE2 の場合

 同じくDelphi の "$(BDS)\lib" フォルダに移動し、ここにある "Indy10" フォルダごとバックアップフォルダの "lib" へ移動します。
 同じくDelphi の "$(BDS)\source" フォルダに移動し、ここにある "Indy" フォルダ (XE は "Indy10") ごとバックアップフォルダの "source" へ移動します。

 "$(BDS)\Projects\Bpl" に Indy 関係のファイルがあれば、こちらはもれなく削除して下さい。

 移動してなくなった下記2つのフォルダを生成しておきます。

 これで既存環境のバックアップが完了しました。

Indy 10 のダウンロード

 ダウンロードは ftp://indy.fulgan.com/ZIP/ から行います。"Indy10_????.zip" が 最新版 (ANSI / Unicode 両用) となっています。

 SVN を利用する場合には以下を参照して下さい。

 ユーザアカウントは "Indy-Public-RO" でパスワードは空白です。

アーカイブの解凍と配置

 アーカイブを適当な場所に解凍したら、"<解凍先>\Indy10_xxxx\Lib" に移動します。

 ここにあるフォルダの内、

 を、"$(BDS)\source\Indy\Indy10" へコピーします (XE / XE2 の場合は "$(BDS)\source\Indy10")。

コンパイルとインストール

 まず、以下のファイルをコンパイル(再構築)します。

 Delphi 2009 の場合

 Delphi 2010 の場合  Delphi XE の場合  Delphi XE / XE2 の場合

 コマンドプロンプトから実行すると楽でしょう。

 Delphi 2009 の場合
"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi "%ProgramFiles%\CodeGear\RAD Studio\6.0\source\Indy\Indy10\System\IndySystem120.dpk"

"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi "%ProgramFiles%\CodeGear\RAD Studio\6.0\source\Indy\Indy10\Core\IndyCore120.dpk"

"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi "%ProgramFiles%\CodeGear\RAD Studio\6.0\source\Indy\Indy10\Protocols\IndyProtocols120.dpk"

 Delphi 2010 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\System\IndySystem140.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Core\IndyCore140.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Protocols\IndyProtocols140.dpk"

 Delphi XE の場合
"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\8.0\source\Indy10\System\IndySystem150.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\8.0\source\Indy10\Core\IndyCore150.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\8.0\source\Indy10\Protocols\IndyProtocols150.dpk"

 Delphi XE2 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\9.0\source\Indy10\System\IndySystem160.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\9.0\source\Indy10\Core\IndyCore160.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\9.0\source\Indy10\Protocols\IndyProtocols160.dpk"

 注意ですが、各パッケージプロジェクトを開いたら、コンパイル(再構築)の前にプロジェクトオプションを変更しなくてはなりません。

 最後に、以下のファイルをコンパイル(再構築)し、インストールします。

 Delphi 2009 の場合  Delphi 2010 の場合  Delphi XE の場合  Delphi XE2 の場合

 コマンドプロンプトから実行すると楽でしょう。

 Delphi 2009 の場合
"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi "%ProgramFiles%\CodeGear\RAD Studio\6.0\source\Indy\Indy10\Core\dclIndyCore120.dpk"

"%ProgramFiles%\CodeGear\RAD Studio\6.0\bin\bds.exe" -pDelphi "%ProgramFiles%\CodeGear\RAD Studio\6.0\source\Indy\Indy10\Protocols\dclIndyProtocols120.dpk"

 Delphi 2010 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Core\dclIndyCore140.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Protocols\dclIndyProtocols140.dpk"

 Delphi XE の場合
"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\8.0\source\Indy10\Core\dclIndyCore150.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\8.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\8.0\source\Indy10\Protocols\dclIndyProtocols150.dpk"

 Delphi XE2 の場合
"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\9.0\source\Indy10\Core\dclIndyCore160.dpk"

"%ProgramFiles%\Embarcadero\RAD Studio\9.0\bin\bds.exe" -pDelphi "%ProgramFiles%\Embarcadero\RAD Studio\9.0\source\Indy10\Protocols\dclIndyProtocols160.dpk"

 こちらもコンパイル(再構築)の前にプロジェクトオプションを変更しなくてはなりません。

 インストールして完了となります。

Delphi 2010 / XE / XE2 での注意事項

 バックアップした3つのフォルダそれぞれの中にある "de / fr /ja" のみを書き戻す事によりエラーメッセージ等の言語切り替えが可能ですが、最新版と内容が一致しない可能性がありますので、リソース文字列の言語切り替えは諦めた方が良さそうです。どうしてもメッセージを言語切り替えしたいのであれば、最新版をベースに自前で翻訳するしかないでしょう。

トラブルシューティング

 "dclIndyProtocolsXXX.dpk" インストールの際に "プロシージャ エントリ ポイント @Idheadercoderindy@initialization$qqrv がダイナミック リンク ライブラリ IndyProtocolsXXX.bpl から見つかりませんでした。" が出たら、旧 Indy のバックアップ漏れ(ちゃんと移動できているか?)を疑ってください。


 BACK