一个基于对话框的项目,后来我新添了一个用于数据管理的类。为了给这个类设定一个全局的变量,以使其它的各个对话框资源均可方便地调用。我就在程序类头文件中把这个数据类的头文件include进去(这下没出问题),然后就在程序类头文件中给数据类构造全局对象(因为所有项目文件都是include 程序类头文件的,我想把全局变量放在程序类头文件中是合适的吧),然后就链接不通过。我该如何是好呢?求教!!!
调试欢乐多
Class var;
然后在头文件声明变量,在其它要用到的单元中include头文件就可以了
extern Class var;
在xx.cpp中类的外面定义全局变量,如: UINT m_Value=0;
step 2:
在stdAfx.h中用extern UINT m_Value
step 3:
接分
其实还有一个方法,就是作为CXXXApp的成员变量,InitInstance里面初始化,这样就可以使用theApp这个全局变量访问了
谢天谢地了,急死了。
不过,全局变量不是好事情,你会慢慢体会到的。
你可以改用类的静态变量来实现。
你在想用theApp这个变量的cpp文件的开头
加一句
#include "myapp.h"
就可以在这个cpp中
使用theApp了,
其实你也可以参考theApp的定义;
一般程序生成的时候都有CXXXApp类
在xxxApp.h的最后会有一句
extern CxxxApp theApp;
在xxxApp.cpp中的构造函数后面会有theApp的声明;
CxxxApp theApp;
这样theApp就是全局变量了
我那个基于对话框的程序没有生成extern CxxxApp theApp;的
我加上去了也没用,不知道怎么回事
CXXXAPP* pApp = (CXXXAPP *)AfxGetApp();
pApp->m_XXXX; //m_XXXX为你的全局变量