快速业务通道

在C++Builder中使用Delphi文件

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30

在使用多种语言和工具编写一个应用程序时,最为困难的事情之一是创建和维护定义文件的接口。幸运的是,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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号