深入研究VCL原始碼 |
|
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
我之前有研究VCL原始碼,但是直接開啟原始碼檔案來研究,這實在是非常辛苦
看到這篇文章簡直是看到了救星,可以在程式執行時去追蹤背後VCL執行的流程
重點是將Project/Option/Linker底下的use debug libraries選取(打勾)
將Project/Option/Packages底下的Build with runtime packages取消就可以了
詳細的資料請見網頁
http://www.cppbuilderdevjournal.com/articles/issues/0005/Stepping_into_the_VCL_source.htm
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
我也來分享一個自製的簡單工具程式,
幫助你在vcl源碼的大海裡找到想要的源碼檔 使用方法:
1.選擇vcl源碼的路徑(一般在安裝目錄底下的Source/vcl)
2.選擇要找尋的檔案類型(.pas檔)
3.輸入關鍵字並尋找。 其他:
1.關鍵字有分大小寫
2.將.pas關連到你的瀏覽程式後,在尋找結果中Double click即可開啟 程式連結:
http://pwipwi.myweb.hinet.net/TextLookup.zip 這個程式幫我賺了不了答題數...
< src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=18686113&CC=417907">
|
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
我先說為什麼要看VCL原始碼,再回頭談談pwipwi所提供的程式 我以前一開始學Visual Basic,雖然好用容易上手,但有些缺點卻讓我很難忍受
例如這篇http://support.microsoft.com/default.aspx?scid=kb;en-us;173264
這個bug是Inet1.UserName = "Username"一定要在Inet1.Password = "Password"的前面
假如寫顛倒了就會出現錯誤訊息,對於這個bug我們也只能多加留意不要犯這個錯誤
這個錯誤幸好MSDN已經提出來了,但是更多的情況是程式發生錯誤時
根本就不知道是自己程式寫錯了還是VB本身的bug在作怪 後來在Delphi K.Top看到幾篇討論我覺得非常有興趣
我以這篇為例http://delphi.ktop.com.tw/topic.php?topic_id=59483
解答者能深入提出VCL原始碼來解釋為什麼,而不是用"這可能是BCB的bug吧"等理由來搪塞
這就是為什麼我想看VCL原始碼的原因 我之前用的工具是Ultra Edit,利用"搜尋/在檔案裡尋找"來找相關的檔案
Ultra Edit做的比較好的是會將同一個檔案中有出現相同關鍵字的那一行列出來
而且我只要點兩下就會跳到那一行去,就可以瀏覽相關的程式碼
但pwipwi的程式點兩下打開了VCL程式碼,面對數千行程式碼我還是不知道去哪裡看我感興趣的程式碼
這就是我覺得pwipwi可以再加強的地方 但是說真的Ultra Edit還不夠方便,第一次搜尋以TWideString當關鍵字,
第二次再以Insert當關鍵字才能找到TWideStrings->Insert(0,L"");實作的函式
一直到cppbuilderdevjournal這篇文章,我才覺得這才是最好的方法
只要程式執行到TWideStrings->Insert(0,L"");這行,按F7直接跳到Insert的函式
比起Ultra Edit方便太多了,這也是我為什麼分享這篇文章的原因
|
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
引言: 我先說為什麼要看VCL原始碼,再回頭談談pwipwi所提供的程式 我之前用的工具是Ultra Edit,利用"搜尋/在檔案裡尋找"來找相關的檔案 Ultra Edit做的比較好的是會將同一個檔案中有出現相同關鍵字的那一行列出來 而且我只要點兩下就會跳到那一行去,就可以瀏覽相關的程式碼 但pwipwi的程式點兩下打開了VCL程式碼,面對數千行程式碼我還是不知道去哪裡看我感興趣的程式碼 這就是我覺得pwipwi可以再加強的地方通常我是用 "CTRL 滑鼠左鍵", "ALT LEFT", "ALT RIGHT" 來觀看 VCL, Debug Libraries 選項比較少用 (除非抓 bug 抓到 VCL 那一層) 用 google 查了一下完整的 keyboard shortcuts, http://homepages.borland.com/strefethen/info/Keyboard.htm, 其他的 code insight, class completion 也是蠻實用的 |
bugmans
高階會員 發表:95 回覆:322 積分:188 註冊:2003-04-12 發送簡訊給我 |
原本的連結失效了
http://www.cppbuilderdevjournal.com/articles/issues/0005/Stepping_into_the_VCL_source.htm 改成 http://bcbjournal.org/articles/vol4/0005/Stepping_into_the_VCL_source.htm |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |