- C++Builder6にIndy9.0をインストールする - C++Builder Tips
- http://219.117.234.12/nikki10.htmlの2003.12.16
- 【BCB】Borland C++ Builder 6にIndyをインストールする手順 - CommentOut?
などを参考にさせてもらった。
まず、ソースコード(Indy9.zip)をダウンロードして、その中のFullc6.batを実行し、ヘッダファイルを開発環境のIncludeフォルダにコピーし、IndyコンポーネントをBCBに追加した。
前に(Indy8)で作ったBCBのプロジェクトは、プロジェクトを新しく作り直して、そこに前のフォームやUnitファイルを改めて追加した。Indy関連のコンポーネントは必要に応じて貼り付けなおした。
Indyヘッダのインクルード順
そのままコンパイルするとwinsock.hとwinsock2.hでfd_setが重複している云々のエラーがどっさり(26個くらい)出た。試行錯誤してみたところ、どうやらIndyのヘッダより前でネットワーク関連の標準コンポーネントのヘッダをインクルードするのがまずいらしい。
Id〜で始まるヘッダを最初の方でインクルードするとエラーは出なくなった。
Indy60.libが無い
デフォルトのFullc6.batを使ってビルドすると、Indy60.libが作られなかった。Indy60.libが無いと、「実行時パッケージを使って構築」のチェックを外してコンパイルする場合にエラーになる。
Fullc6.batを書き換え
まず、(何も考えずに)http://www.programmersheaven.com/mb/bcbuilder/369957/369957/how-to-install-indy-9-in-builder-6/の回答にあるようにFullc6.batをエディタで開き、
%NDC6%\bin\tlib.exe Indy60.lib /P32 @IndyWin32.rsp >nul
の部分を
%NDC6%\bin\tlib.exe Indy60.lib /P32 @IndyWin32.rsp
に書き換えてみたが、やはりlibの作成に失敗する。
IndyWin32.rspを調達
(しぶしぶ)エラーメッセージをよく読むと、indy60.libを作るときに.rspファイルが無いのがよろしくないらしい。そこで、Indy 9.0.18 in BCB6 Final Steps and Installer - cppbuilderの2番目の回答*1に従って必要なファイルを他から調達した。
まずは一回Fullc6.batを実行して、生成物の入るフォルダ(C6)を作らせる。次にIndy_9_00_17_src.zipに含まれている IndyWin32.rsp をC6フォルダにコピーする。その上で Fullc6.bat を実行する。これでようやくindy60.libがC6に出来上がった。
これでOK
indy60.lib をC++Builder6のインストールフォルダの Lib\Release にコピーすると、「実行時パッケージを使って構築」のチェックを外してもコンパイルできるようになった。