C++ Builder开发经验几则

Borland C++ Builder 是Inprise公司继Delphi之后推出的又一激情之作,它使得C++的可视化编程真正成为了可能,这就为那些既不忍心放弃自己心爱的C++语言,又十分向往Windows平台下RAD编程的程序员们提供了一个近乎于完美的解决方案。其中坚版本Borland C++ Builder 3.0更是一优秀的全能型的开发工具。从开发功能上来说,其功能和现在如日中天的Microsoft的Visual C++相比不相上下,而从易用性方面来说,其易用性则要大大优于前者,正因为如此,所以Borland C++ Builder3.0在国内也逐渐得到了一些程序员的认同。但是Borland C++ Builder在国内的应用情况还远不及它的同门师兄Delphi一样普及,所以相对来说Borland C++ Builder3.0的参考资料也比较少。在这里笔者把自己这一年来使用Borland C++ Builder 3.0所总结出来的经验拿出几条来与大家共飨,只希望能对你在编程时有一定的帮助,让你少走一些弯路。

1.全局变量的定义

这个问题在标准的C/C++编程领域可以说根本不能算是一个问题,但是在Borland C++Builder3.0中却有些不同。当一个程序包含一个定义在独立头文件中的全局变量时,程序编译将会很顺利地通过,但是在程序链接时则会出现找不到全局变量目标模块的错误。这个问题曾令包括笔者在内的很多Borland C++ Builder 程序员感到困惑。直到前不久,我才找到了问题出现的原因和解决问题的方法。

在Borland C++ Builder 3.0中对全局变量的定义采用了定义函数一样的方式,即全局变量不仅要有声明部分,还要有实例定义部分。只有这样定义过的全局变量在使用时才不会出错。

以下举例说明,在程序中要定义一个全局整型变量i,它的声明部分写在Struct.H头文件中,如下所示:

#ifndef StructH

#define StructH

#include //此行必须加上

//------------------

extern int i;//此处为全局变量i的声明

//-------------------

#endif

而它的实例定义部分则应该写在Struct.cpp文件中,具体如下:

//------------------

#include “struct.h”

#pragma package(smart_init)//此行必须加上。

//------------------

int i;//此处为全局变量i的实例定义

//-------------------

只有经过以上处理后,在程序中使用自定义全局变量时才不会出错。

时间: 2024-12-02 16:17:41

C++ Builder开发经验几则的相关文章

Borland C++ Builder专题

BCB中如何给Table减肥 C++ Builder开发经验几则 C++ Builder在运行时创建BDE别名 C++ Builder常用代码片断 C++ Builder实现在线接收电子邮件 C++ Builder动态设定odbc数据源 如何利用C++ Builder实现对Excel97 的调用 BCB创建基于Internet的点对点Chat 用C++ Builder开发Web程序 用BCB开发多层数据库应用程序 用C++ Builder编写自已的IE SKIN 用BCB5的打包程序打包BCB6

Flex登陆界面开发经验分享(三)上

上一篇关于Flex登陆开发经验分享前的学习资料分享,相信大家都应该有所学习,对Flex 有了个基本的了解,特别是对Jackson上篇提到的一个外国网站平台,大家从中应该大概的知 道Flex能实现怎样的客户体验,究竟Flex能开发怎样的网站或者系统有了一个直观的感受. 应该已经激起大家学习Flex的热情了,呵呵. 接下来,Jackson将开始分享实际的 Flex登陆开发经验.Jackson将从自己设计过程中想法与创意的变化为主线来进行经验的分享 .会从起初简陋的Flex登陆界面草图开发讲起,到最后

Android对话框AlertDialog.Builder使用方法详解_Android

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 幸运的是,an

C++ Builder调用Matlab

Borland C++Builder是一种新颖的可视化编程语言.在工程应用中,我们一般用C++Builder语言编写应用程序,实现交互界面.数据采集和端口操作等,但C++Builder在数值处理分析和算法工具等方面,其效率远远低于Matlab语言.在准确方便地绘制数据图形方面,Matlab语言更具有无可比拟的优势.此外,Matlab还提供功能强大的工具箱.但Matlab的缺点是不能实现端口操作和实时控制.因此,若能将两者结合运用,实现优势互补,将获得极大的效益. 本文结合实际介绍了应用Borla

C++ Builder中如何保持控件的位置及大小

C++ Builder/Delphi是Inprise(原Borland)公司广受欢迎的可视化C++/Pascal开发工具,利用它可极大地加快应用程序的开发速度.但是,也正因为其是可视化编程工具,将控件拖放到Form后,控件的位置就固定死了.随着Form的大小或屏幕分辨率的改变,控件和Form本身的位置往往变得非常混乱.本文将介绍一些正确定位控件及Form的方法. 利用OnResize事件改变控件位置及大小 C++ Builder/Delphi中的Form控件有一个OnResize事件,Form的

C++Builder 软件还在完善和更新吗?

问题描述 C++Builder 软件还在完善和更新吗? 我用C++builder5开发的应用程序,打包后做成安装系统,却无法在win7系统上安装,有人告诉我说是因为C++Builder 软件开发公司已经不再对其维护和更新了,所以无法适用于高版本的window系统,是这样的吗? 解决方案 基本没有维护了,换visual studio吧. 解决方案二: 貌似还有BCB XE之类的新版本存在,但是从市场份额来说,BCB几乎绝迹了. 解决方案三: BCB在5之后又经历了6,2006,2007,2009,

powerpoint-用C++Builder调用PPT时出现问题

问题描述 用C++Builder调用PPT时出现问题 void __fastcall TForm2::Button1Click(TObject *Sender){ Variant vPowerPoint; try { vPowerPoint = CreateOleObject(""PowerPoint.Application""); } catch(...) { ShowMessage(""Error...""); } //

MacRuby 0.3发布,支持Interface Builder,和创建GUI用的HotCocoa

作者 Werner Schuster ,译者 贾晓楠 发布于 2008年9月24日 | 分享到: 微博 微信 QQ空间 LinkedIn Facebook 邮件分享 稍后阅读 我的阅读清单 现在,MacRuby 0.3已经可以用了. 一个较大的变化是方法调度器,它现在完全基于Objective-C运行时.MacRuby现在使用 Objective-C运行时来实现Ruby的类语义,并调度纯Ruby方法.这是个非常重要的变化,因为这不仅简化了大量的内核实现,还让两个世界之间的界限更加清晰.  [..

解决Eclipse报errors running builder ‘javascript validator’ on project

今天导入jquery的js到项目中,Eclipse老是动不动就报错: errors running builder 'javascript validator' on project 如图: 解决办法: 右击项目名–Properties–Builders–将JavaScript Validator前面的勾去掉即可.