使用外部的全局变量声明
global variable declaration with extern
我的问题是在以下上下文中:
文件1.h
#include "graphwnd.h"
#include "file2.h"
class XXX:
{
....various things....
protected:
CGraphWnd graph_wnd_sensor1D;
}
文件1.cpp
#include "file1.h"
(... various stuff ...)
void main(){
OnInitGraph(&graph_wnd_1_sensor2D, rect_1_sensor2D);
graph_wnd_sensor1D.ShowWindow(SW_HIDE);
myYYY.Init();
}
(... various stuff ...)
这里graph_wnd_sensor1D有一个值,并且 ShowWindow 工作
文件 2.h
extern CGraphWnd graph_wnd_sensor1D;
class YYY:
{
void YYY::Init(){
graph_wnd_sensor1D.ShowWindow(SW_SHOW);
}
....various things....
}
在这里,在 init 中,应用程序崩溃,因为graph_wnd_sensor1D的信息与前一个不同。
在文件 2 中.cpp我想使用 graph_wnd_sensor1D。但视觉产量
CMyTabCtrl.obj : error LNK2001: external symbol unresolved "class CGraphWnd graph_wnd_sensor1D"
- 所以这个想法是让graph_wnd_sensor1D成为在 file1 中声明的全局变量!我该如何解决这个问题?*
您只声明了变量,但没有定义变量。在单个实现文件中添加定义。
文件 2.h
extern CGraphWnd graph_wnd_sensor1D; // declarations
文件 2.cpp
CGraphWnd graph_wnd_sensor1D; // definition
相关文章:
- 将变量声明为全局变量,然后声明为局部变量 -Shadowing-
- 将静态全局变量声明为内联有什么意义吗?
- 我真的可以使用 Type 的每个声明创建一个全局变量吗?
- 声明为类字段而不是全局变量
- 有什么理由C++ 11+ std::mutex 应该声明为全局变量,而不是作为函数参数传递到 std::thread 中
- 在结构声明的分号之前声明的结构变量是否为全局变量
- 困惑,为什么没有在此范围内声明 c++ 全局变量
- 使用静态和避免单例模式声明全局变量
- 声明全局变量 <vector>,代码将无法成功运行
- 即使在定义类后也无法在C++中声明全局变量?
- 查找声明全局变量的文件
- 初学者程序员 c++(局部与全局变量声明)
- 我应该如何在我的C++项目中声明全局变量
- 关于全局变量的外部声明"C"外部声明
- 使用预处理器技巧定义和声明全局变量
- 将变量声明为全局变量会给出不同的答案
- 默认情况下全局变量是 extern 还是等效于在全局中使用 extern 声明变量
- C++ 全局变量声明
- 使用外部的全局变量声明
- Javadoc:对于多个全局变量声明,只需一个注释