为什么用extern定义一个全局变量,居然出现编译错误
出现错误:1>DrawObj.obj : error LNK2001: unresolved external symbol "bool YxStatus" (?YxStatus@@3_NA)
1>E:\HGDrawYun\Debug\DrawYun.exe : fatal error LNK1120: 1 unresolved externals
工程:VS2010多文档
1、在DrawYunView.h中的class CDrawYunView定义定义一个全局变量bool YxStatus;
在DrawYunView类的构造函数中进行初始化及其成员函数中使用
2、在DrawObj.cpp中添加“extern bool YxStatus;”并在本文件的成员函数中使用。
DrawObj.cpp中包含DrawYunView.h头文件:#include "drawYunView.h"
就这样简单为什么会出错 全局变量 Visual?Studio?2010 文档
[解决办法]
“extern bool YxStatus;”
与 CDrawYunView 的 YxStatus 不是一回事,类里的 变量要 有 实例才能 得到的。
即 CDrawYunView *pView = GetActiveView();
pView->YxStatus;
[解决办法]
你要找一个cpp,添上这行
bool YxStatus;
extern就是告诉编译器这个东西不是我的。
[解决办法]
全局变量放cpp定义
[解决办法]
全局变量最好在CPP里定义,.h文件里extern一下,然后其他使用全局变量的文件#include那个头文件就可以。也可以直接extern下
[解决办法]
工程:VS2010多文档
1、在DrawYunView.h中的class CDrawYunView定义定义一个全局变量bool YxStatus;
在DrawYunView类的构造函数中进行初始化及其成员函数中使用
2、在DrawObj.cpp中添加“extern bool YxStatus;”并在本文件的成员函数中使用。
-------------------------
你可以将yxStatus定义为CDrawYunView类的static成员变量,在DrawObj.cpp中使用的话,可以#include "DrawYunView.h",利用CDrawYunView::YxStatus(不过要是public的成员)
[解决办法]
首先,如果你的类都是在同一个project,也就是同个文件夹,用extern声明变量不用#include .h文件。
其次,定义全局变量要放在cpp文件中