3

我的问题是在以下情况下:

文件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 中声明的全局变量!我怎么能解决这个问题?*
4

1 回答 1

6

您只声明了变量,但没有定义变量。在单个实现文件中添加定义。

文件 2.h

extern CGraphWnd graph_wnd_sensor1D; // declarations

文件 2.cpp

CGraphWnd graph_wnd_sensor1D; // definition
于 2012-05-14T14:35:01.130 回答