在C++Builder中安裝Indy 10.2.3詳細(xì)步驟
作者:Tuuzed(土仔)
版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明。
http://www.shnenglu.com/tuuzed/archive/2008/06/17/53771.html
一直想自己制作一個(gè)通過SMTP協(xié)議發(fā)送郵件的小程序,打開BCB才知道BCB6中自帶有NMSMTP和IdSMTP兩種控件。NMSMTP只支持比較老的RFC821協(xié)議,通俗來說就是不支持目前SMTP服務(wù)器所需要的EHLO命令(具體可參考RFC1869和RFC2554);而InSMTP是支持較新的RFC協(xié)議的。無奈的是BCB6原來自帶的是Indy8套件?好老了,在Indy網(wǎng)頁中都已經(jīng)到Indy9和Indy10了。目前網(wǎng)上關(guān)于Indy10的討論漸漸多了起來(英文網(wǎng)站討論的比較多些),但總體說來是不夠,例如在BCB6中如何安裝等等。通過上網(wǎng)搜索和自己半天的摸索,終于在BCB6中安裝好了最新的Indy 10.2.3版本。
第一步:下載Indy 10源代碼 。
Indy是開源的項(xiàng)目,是由SubVersion來管理版本信息。主頁中有給出鏈接地址:http://www.indyproject.org:8080/svn,進(jìn)去后一定要注意:不要一個(gè)一個(gè)文件下載,要通過SubVersion系統(tǒng)的打包程序來打包源代碼,防止遺漏或弄錯(cuò)成了測(cè)試代碼;并只用選擇trunk這個(gè)目錄即可,其他的目錄是給調(diào)試或測(cè)試的人員使用的(主頁http://www.indyproject.org/Sockets/Download/IndyviaSubversion.EN.aspx上有說明),見圖:
首先在trunk目錄前打勾,在toggle右邊的下拉框中選擇“Download as zip”,按Go!下載源代碼,保證是最新的了(看右邊目錄的時(shí)間。
第二步:編譯Indy 10源代碼。
廢話一句,這一步首要的是確保你安裝了BCB或DELPHI。解壓下載來的ZIP文件,進(jìn)入trunk\Lib,這里能看到有一些bat文件和目錄。其中“Fullc6.bat”是我們需要運(yùn)行的安裝文件(C6表示BCB6版本,D6表示DELPHI6等等),以前網(wǎng)上說需要對(duì)Indy10的安裝文件Fullc6.bat和某個(gè).hpp文件進(jìn)行改進(jìn)(見ccrun網(wǎng)站上的Indy10源代碼)。可能是這個(gè)版本比較新,我運(yùn)行了一下,只是在最后會(huì)提示“系統(tǒng)找不到指定的文件。”,分析一下bat文件內(nèi)容,是“copy *.rsp ..\..\C6”語句引起的錯(cuò)誤,我找遍了整個(gè)trunk都沒有.rsp文件,估計(jì)是以前的版本遺留下來的語句。不放心的話,可以注釋掉bat中的這句語句,編譯一樣能通過,并且成功完成。不出意外,trunk下應(yīng)該就有一個(gè)C6目錄了,這就是我們需要的控件代碼了。
第三步:卸載BCB6自帶的Indy8控件。
剛開始我沒有卸載原來的版本,安裝后進(jìn)行測(cè)試竟然出錯(cuò)了,后來上網(wǎng)搜索,發(fā)現(xiàn)要卸載原來的Indy8控件。卸載很簡(jiǎn)單:
1、進(jìn)入BCB6 IDE-關(guān)閉所有項(xiàng)目“File-Close All”-Component-Install Packages,Remove掉有Indy字樣的控件包,OK退出,再關(guān)閉BCB 6。
2、將BCB6安裝目錄下的文件刪除或移走。有以下一些文件:\bin\dclindy60.bpl \lib\obj\dclindy.dcp;\lib\obj\dclindy.dcu;\lib\obj\id*.dcu ;\lib\obj\indy.dcp;\lib\obj\indy.dcu;\include\vcl\id*.* 。為了對(duì)INDY8做個(gè)備份,我寫了一個(gè)Uninstall的bat文件,先找地方建立一個(gè)目錄,運(yùn)行它就行了,它會(huì)原樣把目錄建起來:
1
REM %1=BCB installtion dir
2
mkdir bin
3
mkdir lib
4
cd lib
5
mkdir obj
6
mkdir Debug
7
mkdir Release
8
cd ..\
9
mkdir include
10
cd include
11
mkdir vcl
12
cd ..\
13
MOVE %1\bin\dclindy60.bpl bin\
14
MOVE %1\lib\obj\dclindy.dcp lib\obj\
15
MOVE %1\lib\obj\dclindy.dcu lib\obj\
16
MOVE %1\lib\obj\id*.dcu lib\obj\
17
MOVE %1\lib\obj\indy.dcp lib\obj\
18
MOVE %1\lib\obj\indy.dcu lib\obj\
19
MOVE %1\lib\Debug\indy.* lib\Debug\
20
MOVE %1\lib\Release\indy.* lib\Release\
21
MOVE %1\include\vcl\id*.* include\vcl\
3、將BCB6安裝目錄下CBuilder6\Source\indy改個(gè)名字吧,加個(gè).old,表示這是老的Indy控件了。
第四步:安裝Indy10到BCB6 IDE。
1、Copy 源代碼trunk\C6目錄到BCB6安裝目錄下,我還是放在Source下,把C6改名為Indy10。
2、運(yùn)行BCB6-關(guān)閉所有項(xiàng)目“File-Close All”-Component-Install Packages-Add,把剛才改名的indy10目錄下的dclIndyCore60.bpl和dclIndyProtocols60.bpl項(xiàng)目加進(jìn)來。保存設(shè)置后,再選擇Project-Options-Directories/Conditionals-include path和Library path中將indy10的目錄添加進(jìn)來,保存設(shè)置。
※以下為2008年08月03日增加※
3、拷貝IndyProtocols60.bpl,IndyProtocols60.bpi,IndyCore60.bpl,IndyCore60.bpi,IndySystem60.bpl,IndySystem60.bpi共6個(gè)文件到WINDOWS安裝目錄的system32下。
※增加結(jié)束※
第五步:安裝結(jié)束和測(cè)試。
重啟BCB看看,是不是有Indy10圖標(biāo)出來了?沒有的話,可能是漏了哪一部了。再重做一遍看看。如果不出意外,在控件列表最后已經(jīng)有最新的idny控件出來了,圖標(biāo)好看了很多(僅僅是給設(shè)計(jì)人員看的圖標(biāo))。新建一個(gè)項(xiàng)目,然后拖一個(gè)控件進(jìn)來,在控件上鼠標(biāo)右鍵,可以看看版本號(hào),build項(xiàng)目一下,如果沒有error,那就證明安裝成功了。
額外提示:
1、Indy是一個(gè)開源的項(xiàng)目,不可能保證你的項(xiàng)目它能完全兼容,時(shí)刻注意Indy項(xiàng)目的發(fā)展和更新代碼是關(guān)鍵;
2、開源項(xiàng)目的文檔比較少,主要還是靠網(wǎng)上高人的支持和其他一些開發(fā)人員的測(cè)試,主頁上有文檔下載URL: http://www.projectindy.org/downloads/IndyDocs_10.1.5.0_HtmlHelp.zip。看了一下,是indy10.1.5的,和10.2.3還是有些差別,而且有些方法和屬性不詳細(xì),如果想要進(jìn)一步的支持,好像可以買項(xiàng)目組出的技術(shù)書,具體看主頁吧。
3、學(xué)習(xí)無止境,實(shí)踐出真知。感謝網(wǎng)上所有給我提供參考和幫助的人。