在C++Builder中妙用Delphi文件
在C++Builder中妙用Delphi文件
在使用多种语言和工具编写一个应用程序时,最为困难的事情之一是创建和维护定义文件的接口。幸运的是,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之间极少的不兼容造成的。
更多精彩尽在站长资源库电脑知识网 www.zzzyk.com