在使用多種語言和工具編寫一個應用程序時,最為困難的事情之一是創建和維護定義文件的接口。幸運的是,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之間極少的不兼容造成的。