在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之间极少的不兼容造成的。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |