在使用多種語言和工具編寫一個應用程式時,最為困難的事情之一是建立和維護定義檔案的介面。幸運的是,C++Builder把這一切都替你做好了。當在項目中加入一個.PAS檔案時,C++Builder會自動建立一個.HPP檔案。
在CPP檔案中,可以調用Pascal的函數、對象等。這為Delphi的程式員移植全部或部分的項目提供了便捷的途徑。
下面是在C++Builder中使用Delphi代碼的原則:
1、在C++Builder的表單編輯器中,不能修改或編輯Delphi的表單。但是可以修改Delphi表單的PAS檔案和子節點。可以用Bin目錄下的Convert程式將Delphi的表單轉換成文字格式設定 ,然後以文本方式編輯Delphi表單,然後再轉換回DFM檔案格式。關鍵是要記住:可以在 IDE中編輯Delphi的PAS檔案,但是不能編輯Delphi的表單檔案(DFM檔案)。
2、在同一檔案中,C++和Object Pascal不能同時定位。Object Pascal 可以被C++調用, 反之亦然。但是在C++中,調用Pascal要比從Pascal中調用C++要容易些。
3、C++Builder的項目中不能連結DCU檔案,但是可以直接使用源碼。另一種方法是:先 產生一個可以被C++Builder連結的OBJ檔案(如果是使用Delphi3.x)。這個方法適應於 表單、組件和單元。
C++Builder並不關心項目中的單元是用C++還是用DELPHI編寫。C++ Builder都將當作C++Builder統一進行編譯。
一般來講,任何在Delphi3.x中用delphi編譯器可以編譯的單元
都可以在C++Builder中編譯。C++Builder可以編譯下列內容:
1、Delphi表單;
2、包含對象的Delphi單元;
3、包含過程、函數、常量、數組等的Delphi單元;
4、Delphi組件。
在C++Builder項目中,添加Delphi單元的步驟如下:
1、選擇Projet|Add to Project
2、從Add to Project對話方塊中選擇CPP、C、PAS、RES、LIB或OBJ。對於Delphi單元,選擇PAS。
3、瀏覽目錄並選擇加入項目所需要的檔案。
4、找到所需的檔案後,單擊Open完成。無須以任何方式進一步處理Pascal檔案。
在C++Builder中使用Delphi組件
在C++Builder中使用Delphi組件是容易的。大部分組件不需修改就可以直接使用,但是有時在安裝組件選項板時出現的編譯錯誤也會導致Delphi的組件出現問題。
在C++Builder中試圖使用Delphi組件時可能會遇到一些問題,如連結錯誤等。
C++Builder中有三種副檔名用於組件,即OBJ、CPP、PAS檔案,而對於每一種副檔名檔案,C++Builder都有不同的處理方法。
1、使用.OBJ檔案安裝組件時,編譯器把目標檔案連結到程式包庫。
2、如果是.CPP檔案,則先調用C++編譯器產生一個.OBJ檔案,然後再連結到組件庫。
3、如果是.PAS檔案,則先調用Pascal編譯器,這個編譯器
是一個小型編譯器。它不同於Delphi中的Pascal編譯器。它不僅建立一個Delphi Compiled Units(DCU)檔案,而且還產生一個.OBJ檔案和一個以.HPP為副檔名的C++標頭檔(在使用Pascal檔案時,可以強制產生C++的標頭檔、OBJ和DCU檔案。命令列狀態下使用.JPHN作為DCC32.exe的選擇性參數)。然後.OBJ檔案連結到組件庫,而標頭檔用於應用程式的類的說明。
儘管建立了一個C++的標頭檔,有時還是可能會出現問題。一些pascal語言的特性不能轉換成
C++,因而在下列三個方面可能產生問題。
1、給組件庫安裝組件時;
2、在C++Builder產生C++標頭檔時;
3、使用Delphi組件後連結C++Builder應用程式時。
在C++Builder中可以使用Object Pascal的代碼,這是一個驚人之舉。整個VCL都是用Object Pascal編寫的,它可以和C++Builder代碼進行連結。但是要記住,不是百分之百可以連結,這是由於C++和Object Pascal之間極少的不相容造成的。