请问在向MFC添加了一个类.cpp和.h文件之后,在.cpp中搜索类,出现“未定义符号”!!!!

时间:2021-12-15 23:27:48
小弟在做一个工程项目,想要往一个MFC框架中添加已有的类文件,在文件浏览器中点右键,选择“add   files   to   folder”,然后选择该类所在的cpp和h文件。 我也删除了.clw文件,重新加载了。可是,在.cpp文件里我搜索该类定义时,照理说应该会跳到.h中类的定义,可是却出现了“The symbol“类名”is undefined”。不知道在哪里出现了问题,在线等各位高手给小弟释疑解惑,不胜感激!!!!

9 个解决方案

#1


楼主确定已经在主程序.cpp对应的.h中include了.h文件,要是还不行的话可以直接在stdafx.h中include一下,然后清理,重生一下

#2


谢谢回复。
添加了,能添加的都添加了。还是出现同样的错误。但是它编译的时候却没有报错.我添加的是STCurve.cpp和STCurve.h,在添加的STCurve.cpp文件里面CSTCurve::CSTCurve()上面右击,寻找该类的定义,应该跳到STCurve.h关于STCurve的定义
class CSTCurve : public CStatic
{
// Construction
public:
CSTCurve();

CBitmap *m_pBitmapOldBackground ;
CBitmap m_BitmapBackground ;
CDC m_dcBackground;
CRect m_rectCtrl;            //控件区域
CRect       m_rectDraw;            //画图区域
int         m_nMarginTop;          //曲线顶部间距
int         m_nMarginBottom;       //曲线底部间距
int         m_nMarginLeft;         //曲线左部间距
int         m_nMarginRight;        //曲线右部间距
int         nPlotGranulatrity;     //数据点分辨率大小(即:一个数据点占据的像素数)
int         nPlotDataPoint;        //容纳数据点数
CFont m_TextFont;            //文本字体
CFont       m_TitleFont;           //标题字体
LineArray   m_laCurve;             //曲线数组
CPoint m_ptCrossCenter;

// Attributes
public:
//设置X轴方向网格间距
void   SetAxisGridSpaceX(int nAxisSapceX);
//设置Y轴方


但是它依旧报错,说“The symbol 'CSTCurve'is undefined!”

#3


楼主用的估计是VC6吧
VC6的由MFC类派生来的类文件中的 包含//AFX_XXXX的注释行不能少,否则不能被IDE正常识别,也无法用向导添加消息和重载函数等

可以用VC6从CStatic派生个新类,把那些包含AFX_的注释行都补上,清理CLW,……再试试看

#4


我自己解决啦。。。。。。原来不是那些问题。在网上找了一些资料,才发现是这么回事。和你们分享一下。。。
VC中The symbol is "xxx" undefined解决办法
     使用VC中有时已经定义了变量或者函数,但是即使在定义的变量或函数上点右键-Go to Definition of ""都会出现The symbol is "xxx" undefined。解决方法为找到项目对应的*.bsc文件,删除,然后rebuild。随便找到一个原来会出错的变量,再点go to definition,IDE会提示重建*.bsc文件,重建好了就不会再出错了. 

#5


引用 4 楼  的回复:
我自己解决啦。。。。。。原来不是那些问题。在网上找了一些资料,才发现是这么回事。和你们分享一下。。。
VC中The symbol is "xxx" undefined解决办法
     使用VC中有时已经定义了变量或者函数,但是即使在定义的变量或函数上点右键-Go to Definition of ""都会出现The symbol is "xxx" undefined。解决方法为找到项目对应……

恭喜~

#6


恭喜楼主!

#7


顶,正好我也遇到这样问题,感觉真是好

#8


我也遇到了这个问题,学习了

#9


多谢楼主,解决方法很正确!!

#1


楼主确定已经在主程序.cpp对应的.h中include了.h文件,要是还不行的话可以直接在stdafx.h中include一下,然后清理,重生一下

#2


谢谢回复。
添加了,能添加的都添加了。还是出现同样的错误。但是它编译的时候却没有报错.我添加的是STCurve.cpp和STCurve.h,在添加的STCurve.cpp文件里面CSTCurve::CSTCurve()上面右击,寻找该类的定义,应该跳到STCurve.h关于STCurve的定义
class CSTCurve : public CStatic
{
// Construction
public:
CSTCurve();

CBitmap *m_pBitmapOldBackground ;
CBitmap m_BitmapBackground ;
CDC m_dcBackground;
CRect m_rectCtrl;            //控件区域
CRect       m_rectDraw;            //画图区域
int         m_nMarginTop;          //曲线顶部间距
int         m_nMarginBottom;       //曲线底部间距
int         m_nMarginLeft;         //曲线左部间距
int         m_nMarginRight;        //曲线右部间距
int         nPlotGranulatrity;     //数据点分辨率大小(即:一个数据点占据的像素数)
int         nPlotDataPoint;        //容纳数据点数
CFont m_TextFont;            //文本字体
CFont       m_TitleFont;           //标题字体
LineArray   m_laCurve;             //曲线数组
CPoint m_ptCrossCenter;

// Attributes
public:
//设置X轴方向网格间距
void   SetAxisGridSpaceX(int nAxisSapceX);
//设置Y轴方


但是它依旧报错,说“The symbol 'CSTCurve'is undefined!”

#3


楼主用的估计是VC6吧
VC6的由MFC类派生来的类文件中的 包含//AFX_XXXX的注释行不能少,否则不能被IDE正常识别,也无法用向导添加消息和重载函数等

可以用VC6从CStatic派生个新类,把那些包含AFX_的注释行都补上,清理CLW,……再试试看

#4


我自己解决啦。。。。。。原来不是那些问题。在网上找了一些资料,才发现是这么回事。和你们分享一下。。。
VC中The symbol is "xxx" undefined解决办法
     使用VC中有时已经定义了变量或者函数,但是即使在定义的变量或函数上点右键-Go to Definition of ""都会出现The symbol is "xxx" undefined。解决方法为找到项目对应的*.bsc文件,删除,然后rebuild。随便找到一个原来会出错的变量,再点go to definition,IDE会提示重建*.bsc文件,重建好了就不会再出错了. 

#5


引用 4 楼  的回复:
我自己解决啦。。。。。。原来不是那些问题。在网上找了一些资料,才发现是这么回事。和你们分享一下。。。
VC中The symbol is "xxx" undefined解决办法
     使用VC中有时已经定义了变量或者函数,但是即使在定义的变量或函数上点右键-Go to Definition of ""都会出现The symbol is "xxx" undefined。解决方法为找到项目对应……

恭喜~

#6


恭喜楼主!

#7


顶,正好我也遇到这样问题,感觉真是好

#8


我也遇到了这个问题,学习了

#9


多谢楼主,解决方法很正确!!