终于搞定了mfc声明全局变量

来源:互联网 发布:php简历管理系统 编辑:程序博客网 时间:2024/06/16 10:50

1、先建立一个基于对话框的工程,命名为test

2、在自定义一个类,用于封装全局变量和全局函数,如CPublic,基类随便定义吧,我用的是CDialog

3、在Public.h中Class Public下声明静态全局变量和全局函数,如
   class CPublic : public CDialog
{
// Construction
public:
 CPublic(CWnd* pParent = NULL);   // standard constructor
 
static short a;
static short f(a);
...
}
一定要加static哦,关于static用法,请好好看看相关资料吧
4、假设你所要引用全局变量的CPP文件是***.cpp,那么在***.h抬头先写上那句必要的
#include"public.h"
然后在***.cpp的抬头,声明包含文件的下面,也就是全局的位置,写上要用到的全局变量的定义,格式是
short CPublic::a;
short CPublic::f(a);
5、在***.cpp的位置你可以随便引用啦,大功告成!
 
搞定这个我主要参考了两个人的资料,一个是网上随便都能搜的到的在MFC下如何定义全局变量和全局函数,另一个是百度知道的一位朋友写的:
“LZ一定是在头文件里面定义的变量吧
全局变量的声明如果是在头文件里头,要这么写
extern int a; //声明
然后在一个cpp文件里头全局的位置再写上
int a; //这个才是实例,只能在一个cpp里面出现
这样就可以再引用该头文件的地方使用这个变量。”
 
在这里谢谢啦。自己在写一遍有助于加深记忆!
 
下午又发现了更好的方法
转自:http://blog.csdn.net/fpmystar/archive/2009/06/16/4269653.aspx
http://blog.csdn.net/icycoffee/archive/2007/06/04/1638286.aspx
全局变量一般这样定义:
1。在一类的.cpp中定义 int myInt;
然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。
2。在stdafx.cpp中加入:
int myInt;
然后在stdafx.h中加入:
extern int myInt
这样定义以后无论在什么文件中都是可见的.
3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#i nclude <Glbs.h>,以后调用的#i nclude <Externs.h>
原创粉丝点击