1)全局变量应在主程序的.cpp中声明&初始化。 CXXXApp theApp; // 主程序实例 int nNum[100] = {0}; // your global var 2)然后在主程序的.h中extern extern int nNum[100]; 3)以后在任何.cpp的地方可直接使用。
lz,extern int nNum[100];这样不是定义全局变量拉,这样只是告诉别的cpp说,会有这么一个全局变量o~可是全局变量本身还是要在其它地方定义好的。what_a_big() 说的没错~
//Global.h #ifndef GLOBAL_H #define GLOBAL_H int nNum[100]; #endif//GlobalExtend.h #ifndef GLOBALEXTEND_H #define GLOBALEXTEND_H extern int nNum[100]; #endifglobal.h包含在你要保存变量的窗口的头文件中 globalextend.h 包含在你要使用该变量的窗口头文件中
extern int nNum[100];
然后调用如下
for (i=0;i<m_nNum;i++)
{
nNum[i]=IDC_EDIT_ONE+i;
}
运行时,提示如下信息
Compiling...
SecondDialog.cpp
Linking...
SecondDialog.obj : error LNK2001: unresolved external symbol "int * nNum" (?nNum@@3PAHA)
Debug/Dialog.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.Dialog.exe - 2 error(s), 0 warning(s)
CXXXApp theApp; // 主程序实例
int nNum[100] = {0}; // your global var
2)然后在主程序的.h中extern
extern int nNum[100];
3)以后在任何.cpp的地方可直接使用。
#ifndef GLOBAL_H
#define GLOBAL_H
int nNum[100];
#endif//GlobalExtend.h
#ifndef GLOBALEXTEND_H
#define GLOBALEXTEND_H
extern int nNum[100];
#endifglobal.h包含在你要保存变量的窗口的头文件中
globalextend.h
包含在你要使用该变量的窗口头文件中