吵吵   2011-03-03  阅读:3,218

自己写的一个程序因为不想重复的去读取文件,于是想定义一个全局的结构来保存这些信息,这样在所有的窗口和线程中都能够使用到它。MFC用来定义一个全局的函数还是真的简单,你只要不仍在某个类中的定义,随便一个头文件中就搞定。www.chaochaoblog.com

但是定义一个全局变量就麻烦了,老是出现LINK2005错误,而且老是显示already defined(www.chaochaoblog.com);

试了不少办法,比如加上extern,static等等都解决不了,因为我的程序是窗口之间相互的包含了头文件,如果在头文件中定义的话,就很容易重复定义了。后来试来试去还是这两个方法比较好:

1.先建立一个Global.h的文本文件,然后在vc中加载进去,之后在里面声明一个结构,切记不要在里面定义啊,只要声明就好了。

然后在其中一个类中加入#include”Global.h”;在cpp的最上面开始定义你要的变量。如int n;

这样子在其它类或者cpp文件中用到的时候就在最前面先include Global.h 然后再extern int n;ok 大功告成。

2.第二种方法是建立一个类,如myPublic;

在类中定义公共变量如:

pubulic:

int n;

这样子在其它类中访问就只要myPublic::n=0;

也可以弄个类指针,用指针来访问。要注意的是函数要用static修饰。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注