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的实例定义
//-------------------
只有经过以上处理后,在程序中使用自定义全局变量时才不会出错。