《轉》記錄一些BCB6的使用心得

2022-02-02 05:02:43 字數 1805 閱讀 6831

源: 

自從2023年開始接觸bcb,使用bcb作程式設計入門學習,一路走來,遇到了不少不大不小的問題。一晃9年過去了,bcb不再陌生,當初為問題困擾時那種手足無措的記憶也漸漸淡了。每念及此,甚有把一些心得寫作文字的緊迫感。鑑於本人技術能力和文字水平之限,一直未能下決心,今天鼓起勇氣做這事,好歹不論,只希望對使用bcb的後來者有些幫助。

1.       盡量將enum型別視為int型別使用

vcl庫中emun型別預設1個位元組大小,而vc中enum型別預設4個位元組大小。因此一旦遇到使用bcb編譯可執行檔案呼叫vc編譯動態庫中的某個函式,且該函式使用enum型別輸入引數的情況,問題就來了。在32位pc平台上一次入棧資料最小為4個位元組,可執行檔案將emum型別引數壓入堆疊的4個位元組中實際僅1個位元組有效,高位其他3個位元組內容為隨機值,而動態庫函式執行過程中使用了4個位元組資料內容。

為避免發生上述問題,應該預設將「project」->「options」->「compiler」頁面下的「treat enum types as ints」項打勾。

2.       使用編譯加速器bcc32pch

3.       如何跨工程(project)進行原始碼級除錯

4.       不要在動態庫中使用ado控制項

不要在動態庫中使用ado控制項,實際上即使想用也用不了。微軟原始的ado activex控制項可沒這個限制,borland一封裝就不行了。曾經看過ado控制項原始碼,發現內部包含檢測例項模組是否為可執行檔案模組的**,如否則建立失敗。至於為何這麼做,沒有細究。

5.       不要使用extractfiledir函式

extractfiledir函式實現有bug。以下內容摘自季世平及(jsp)回覆:這個函式,如果發現系統語言是遠東的話,並且最後的目錄名含有雙位元組文字(比如中文漢字)的話,且最後乙個雙位元組文字的後面的引文數字字元個數為奇數時,才會發生這個問題。具體說,如果最後的目錄名為"新建資料夾1","新建檔案a夾1"之類的就會有問題,但如果是"新建資料夾12","新建檔案a夾12"就不會有問題。

6.       命令列方式編譯工程

bpr2mak -oprj_a.mak prj_a.bpr         

make -b -fprj_a

如果只需「make project」,而非「build project」,那麼將移除「-b」選項即可。輸入完畢儲存文字,將文字檔案字尾名改為「.bat」,雙擊該檔案就可以看到效果了。更多選項功能,可以參考「borland c++builder help」。

7.       如何徹底移除自帶indy控制項

a.執行bcb6,解除安裝indy控制項包,選中「project」->「options」->「packets」頁面下indy控制項包,單擊「remove」按鈕解除安裝。

b.假如bcb安裝目錄是「c:/program files/borland/c++builder6」,在c:/program files/borland/c++builder6/include/vcl目錄刪除所有「id」字元為首的hpp檔案,在c:/program files/borland/c++builder6/lib/obj目錄分別刪除dclindy.dcp、dclindy.dcu、indy.dcp、indy.dcu檔案,在c:/program files/borland/c++builder6/bin目錄刪除dclindy60.bpl檔案,在c:/windows/system32目錄刪除indy.bpl檔案。

c.解除安裝乾淨,可以安裝新版控制項了。

用bc 編譯時發現少了乙個dclusr.lib
project->edit opitionsource開啟工程原始檔

找到並刪除它就可以了

VMware一些使用心得

這段時間vmware workstation用得較多,裝了好幾個虛擬機器,有win2003,win2008,win7,還分32位,64位。裝了這麼多,要麼是用於安裝一些軟體,比如oracle12c,因為宿主機器已經裝了11g,一山難容二虎 要麼是用於部署測試環境。我覺得虛擬機器真是很棒的想法。以下是...

VMware一些使用心得

分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!這段時間vmware workstation用得較多,裝了好幾個虛擬機器,有win2003,win2008,win7,還分32位,64位。裝了這麼多,要麼是用於安裝一些軟體,比如oracl...

Sqoop的一些使用心得

sqoop作為從關係型資料庫匯入hdfs的工具,我們在從關係型資料庫中匯出資料時可先做資料篩選,選定我們所要的資料,能大大的減輕資料負擔,即sql語句後加where條件的實現!經測試可執行sqoop指令碼如下 sqoop import connect jdbc oracle thin ip port...