我的问题出现在以下背景中:
file1.h
#include "graphwnd.h"
#include "file2.h"
class XXX:
{
....various things....
protected:
CGraphWnd graph_wnd_sensor1D;
}
file1.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"
答案 0 :(得分:6)
您只声明了变量,但未定义变量。在单个实现文件中添加定义。
档案2.h
extern CGraphWnd graph_wnd_sensor1D; // declarations
档案2.cpp
CGraphWnd graph_wnd_sensor1D; // definition