Borland C++ 6 自帶了一套非常強大的網絡控件:Indy。但其版本較低,本文介紹如何将Indy控件更新到9.0版本。
本文僅适用于Win2000, WinXP及更高版本的作業系統。
(Indy現有版本10,用于支援 Delphi.Net。并不支援CB6)。
這個文檔是我根據自己更新Indy的過程,而整理出來的。文檔内容并不難,隻是步驟相當繁瑣。其原因在于Indy是一個開源項目——不少開源項目在安裝上都缺少一些“傻瓜”式的工具。或者,開源軟體的作者都認為,程式員們是不會被這些所難倒的?已經有不少人通過我這個文檔成功更新Indy,大家順便借此機會鍛煉一下自己的耐心和細心。
要正确安全Indy 9的最新版本,必須下載下傳兩個版本的源代碼。
<a href="http://www.indyproject.org/downloads/Indy_9_00_17_src.zip">下載下傳Indy 9.0.0.17 版源代碼</a>
<a href="http://www.indyproject.org/downloads/indy9.0.18_source.zip">下載下傳Indy 9.0.0.18 版源代碼</a>
另外,我們還需要下載下傳Indy 的幫助文檔:
<a href="http://www.projectindy.org/downloads/Indy-9-0-Help-WinHelp.zip">下載下傳Indy 9 幫助文檔</a>
啟動C++ Builder6。點File菜單,選“Close All”。然後點Component菜單,選“Install Packages...”。出現對話框後,在“Design Packages”内,找到原有Indy的設計包(帶有indy字樣),選中,然後點下面按鈕“Remove”。移除原版本的Indy設計包。
關閉Borland C++ Builder6。如果有其它使用到Indy的應用程式在運作,也需退出。
進入Borland C++ Builder6 的安裝目錄下,搜尋以下檔案:
dclindy*.bpl; dclindy.*; dclindy*.bpl; indy*.lib; indy*.bpl; indy*.dll; id*.pas; id*.hpp; id*.dcu;
将上一步搜尋到的檔案,全部删除(強烈建議僅删除到資源回收筒!)。
同樣在Borland C++ Builder6 的安裝目錄下,這次單獨搜尋 id*.obj 。
将上一步搜尋到的結果,除“IDPAS32.obj ”以外,全部删除(強烈建議僅删除到資源回收筒!)。
到Windows安裝目錄下的System32目錄下,找到以下檔案: indy*.bpl ;然後删除。
到Borland C++ Builder6安裝目錄下,找到Help目錄,搜尋以下檔案:Indy.* ;然後删除。
将Borland C++ Builder6 安裝目錄下的 Source\Indy 内的所有檔案删除。
在Borand C++ Builder6 安裝目錄下的 Source\Indy 目錄内,再建一級子目錄,名稱必須為Source。假設:我的CB6安裝在C:\Program Files\Borland\CBuilder6\,則目錄為:
C:\Program Files\Borland\CBuilder6\Source\Indy\Source 其中最後一級的Source需要您來建立。
将Indy_9_00_17_src.zip 内的所有檔案,直接解壓到上述目錄。注意是檔案直接解壓上述的Source子目錄;即:解壓後,Source下不要再有下一級子目錄出現。
解壓indy9.0.18_source.zip内的所有檔案,直接解壓到上述目錄。覆寫9.0.0.17版的檔案。解壓時同樣請注意上1步提到注意事項。
打開控制台(Win旗标鍵+R,輸入cmd回車);在控制台内進入第1步中建立的Source目錄下。
輸入 FullC6.bat,回車。安裝開始。如果沒有出錯提示,則本步安裝成功。否則失敗。
啟動C++ Builder6。點File菜單,選“Close All”。然後點Component菜單,選“Install Packages...”;出現對話框後,點“Add”按鈕,轉到C++ Builder6安裝目錄下的\Source\Indy\C6目錄下,找到dclIndy60.bpl。(C6是第5步安裝時自動産生的目錄),安裝後,應可以在“Design Packages”内找到 “Internet Direct (Indy)for D6...”的說明。如下圖:

(安裝成功後的Indy 9)
在CB的控件欄内,也可以找到新版的Indy控件頁(圖檔水準方向太長,是以截成兩行,并且僅截出部分控件):

(Indy 控件示意 一)

(Indy 控件示意 二)
退出C++ Builder6。然後将Indy-9-0-Help-WinHelp.zip解壓到C++Builder6安裝目錄下的 Help\下。
運作C++ Builder6。點選Help菜單,選“Customize...”,出現OpenHelp視窗。
在OpenHelp視窗的“Contents”、“Index”、“Link” 三頁内,如果發現有帶叉的項目,選中,在右鍵菜單中選“Remove Files”,删除這些已找不到連結的項。
切換到“Index”頁内,點工具欄上“Add Files”按鈕,或右鍵菜單内同名子菜單,然後在第1步的Help目錄下,找到“INDY.HLP”,加入。
切換到“Link”頁内,同樣方法,将INDY.HLP加入“Link”頁。
點選File菜單,選“Save Project”。OpenHelp開始編譯,直至完成。
點選菜單Tools,選“Enviroment Options”,出現對話框後,選“Library”頁,點“Library Path”右側帶3個點的小按鈕,出現新對話框後,在中間的編輯框内,輸入 “$(BCB)\Source\indy\c6” (不含引号),然後點“Add”,加上該路徑。順便點選一下“Delete Invalid Paths”按鈕。最後點選OK按鈕退出。

以後,建立任何要使用到Indy90控件的工程,均需在工程條件(設定工程條件:菜單Project->Options,或按Ctrl+Shift+F11,以打開工程條件設定框)内,選擇“Directoies/Conditionals”頁,分别以上1步的類似的方法,在Include Paths和Lib Paths内,加入新路徑:“$(BCB)\Source\Indy\C6”。
原有CB帶的Indy例子,可能會在編譯上有些問題。建議不要編譯。
如果編譯帶Indy的工程時,出現找不到Indy.bpi或Indy.lib提示時,選“Cancel”,中斷編譯。點菜單“Project”,選“Edit Options Source”,将打開XML格式的工程配置源檔案。搜尋所有 indy.bpl字樣,并删除;然後在工程條件(設定工程條件:菜單Project->Options,或按Ctrl+Shift+F11),找到“Packages”頁,在下方的“Runtime packages”編輯框内,找到“indy”,删除之。然後檢視該框内是否有“Indy60”,若無,添上。注意不同的運作時包是用分号(;)分隔,删除和添加時,不要少了分号,也不要多餘出分号。确認後按Ctrl+F9編譯。
如果經過上1步處理,仍無法編譯。則儲存工程,關閉C++ Builder6, 然後用Windows自帶的記事本或UE等純文字編輯器,打開工程源檔案(擴充名為 .bpr)。搜尋所有indy.bpl字樣,并删除,然後儲存檔案,打開CB6重新編譯。
<a href="http://www.indyproject.org/">Indy 官方網站: www.indyproject.org</a>