`
cn_arthurs
  • 浏览: 327106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在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文件链接到组件库,而头文件用于应用程序的类的说明。---www.bianceng.cn

  尽管创建了一个C++的头文件,有时还是可能会出现问题。一些pascal语言的特性不能转换成

  C++,因而在下列三个方面可能产生问题。

  1、给组件库安装组件时;

  2、在C++Builder生成C++头文件时;

  3、使用Delphi组件后链接C++Builder应用程序时。

  在C++Builder中可以使用Object Pascal的代码,这是一个惊人之举。整个VCL都是用Object Pascal编写的,它可以和C++Builder代码进行链接。但是要记住,不是百分之百可以链接,这是由于C++和Object Pascal之间极少的不兼容造成的。

 

分享到:
评论

相关推荐

    C++ Builder调用Delphi的pas文件实例

    1. **创建Delphi的PAS文件**:在Delphi中编写PAS文件,定义需要被C++调用的函数或方法。确保这些函数使用标准的C调用约定(`stdcall`),以便跨语言兼容。例如: ```delphi unit MyDelphiFunctions; interface ...

    C++ builder 及delphi 可用皮肤控件

    2. **控件组件**:这些是实际在代码中使用的对象,它们扩展了标准的 VCL(Visual Component Library)或 FireMonkey 控件,提供皮肤化功能。开发者可以在界面上拖放这些控件,然后指定相应的皮肤资源。 3. **文档和...

    C++Builder和Delphi的数据类型比较

    - **SmallInt**: 在Delphi中,`SmallInt`是一种16位整数类型,而在C++Builder中,它对应于`short`类型的实现。 - **LongInt**: `LongInt`在Delphi中表示一个32位整数,与C++Builder中的`int`类型相对应。 - **Byte**...

    delphi/c++builder_2010_3615_win注册码、序列号

    2. **安装软件**:使用虚拟光驱软件加载 ISO 文件,按照提示完成 Delphi/C++Builder 2010 的安装过程。 3. **应用补丁**:下载并安装 Update 4/5 补丁包,以获得最新功能和支持。 4. **输入注册码**:在安装过程中...

    c++ builder 2007 安装程序

    7. **组件编程**:C++ Builder 支持组件编程,开发者可以将自定义的代码封装为可重用的组件,方便在多个项目中复用。 8. **网络编程**:C++ Builder 2007 提供了丰富的网络编程接口,可以进行HTTP、FTP等协议的通信...

    如何在C++Builder2007中安装自己的组件

    这种方式不仅适用于C++Builder2007,还适用于其他Delphi或C++Builder的版本,因为它利用了Delphi的包机制,使得组件可以方便地集成到IDE中,供开发人员在设计时使用。通过这个过程,你可以确保你的自定义组件可以被...

    delphi、C++ builder流操作

    在Delphi中,TFileStream是TStream的一个重要派生类,专门用于文件操作。创建TFileStream对象时,需要指定文件名和打开模式,如只读、只写、读写以及文件共享模式。这使得我们能方便地读取和写入文件。 通过实例,...

    Indy10_5494控件 C++Builder Delphi

    - 集成到项目:将Indy10组件添加到C++Builder或Delphi项目中,通常涉及到调整项目设置、导入库文件和添加使用声明。 - 错误处理:在网络通信中,错误处理是至关重要的,Indy10提供了丰富的事件和异常处理机制,以...

    C++builder中人工添加MSCOMM控件的方法

    #### 四、在Delphi中使用MSCOMM控件 完成了以上步骤之后,您就可以在Delphi环境中使用MSCOMM控件了。具体步骤如下: 1. 进入Delphi开发环境。 2. 选择菜单命令:`Component -> Import ActiveX Control`。 3. 在弹...

    delphi、c++builder加速控件 fastmm490

    FastMM4是一个强大的内存管理工具,专为Delphi和C++Builder开发人员设计,用于提升应用程序的性能和稳定性。在标题中提到的"FastMM490"可能指的是FastMM4的一个特定版本或更新,强调了它在加速控件方面的优秀表现。...

    C++Builder Printer打印机程序

    "ParentForm.ddp"和"Jiangche.ddp"是Delphi Designer Project(DDP)文件,这是C++Builder中用于保存VCL(Visual Component Library)组件设计时状态的文件。它们记录了界面上每个组件的位置、大小、属性等信息,...

    c++builder delphi使用的主题包

    在这个“c++builder delphi使用的主题包”中,我们可能找到了一套精心设计的界面主题,可以显著提升用户界面的视觉吸引力和用户体验。 首先,让我们深入了解一下C++Builder。C++Builder是为C++程序员设计的,它将...

    c++builder6.0 Mscomm空间实现32位继电器开关

    在本文中,我们将深入探讨如何使用C++Builder 6.0集成开发环境,结合MSComm控件来实现32位继电器开关功能,并通过485串口通信协议进行工控机间的通信。首先,我们需要了解C++Builder 6.0的基础知识,它是一款由...

    DELPHI2009破解文件

    下载地址如下:http://altd.codegear.com/download/Delphi_C++Builder2009/Delphi_C++Builder2009.iso 步骤2: 用WinISO等类似软件,打开刚下载的Trial版DVD镜像文件, 然后,把本破解包里的“tiburonstudio_ft...

    delphi与C++builder之间的转换

    Delphi与C++Builder作为两种广泛使用的开发工具,分别基于Pascal和C++语言,它们在很多方面有着相似之处,但也存在一定的差异。本文旨在帮助开发者快速掌握这两种工具之间的转换技巧,从而在最短的时间内提高工作...

    C++Builder6编程实例精解.pdf

    - 系统信息管理:主要介绍如何在C++Builder中使用Windows API,进行系统级别的操作。 - FTP和WinSock网络通信:介绍TNMFTP组件的使用,并基于此组件制作FTP工具;利用WinSock技术制作远程屏幕监视程序。 - Direct X...

    delphi & C++Builder RAD XE7 安装破解包

    delphi & C++Builder RAD XE7 安装破解包

    Borland C++ Builder 6 帮助文件.rar

    三、C++Builder 6 的优势 1. 快速应用开发:通过组件拖放和事件驱动编程,使得非专业程序员也能快速开发出功能丰富的应用。 2. 高性能:编译器优化能力强,生成的代码运行速度快。 3. 扩展性:支持第三方组件和库,...

    c++builder 6.0 lite1.07

    在C++Builder 6.0 Lite中,开发者可以使用以下核心特性: 1. **RAD(Rapid Application Development)**: 这是Borland IDE的标志性特点,允许开发者快速创建用户界面和应用程序逻辑。 2. **C++编译器**: 提供了对C++...

Global site tag (gtag.js) - Google Analytics