mfc视类中错误:IntelliSense: declaration is incompatible with。。。解决方案
基本情况是我自己写了一个类:
class CDib
{。。。。}
然后在mfc自动生成的“工程名Dlg.cpp”中使用类CDib,我的工程名是MfcPictureProcessing,所以类是class CMfcPictureProcessingDlg,下面是视图类.h文件里:
class CMfcPictureProcessingDlg: public CDialogEx
{
。。。
CDib *Dlgdib;
CPalette* CreateBitmapPalette(CDib *pBitmap);
。。。
}
然后在.cpp中具体实现:
CPalette* CMfcPictureProcessingDlg::CreateBitmapPalette(CDib* pBitmap)
{
。。。。
Dlgdib....
}
这时候出现的问题是:
IntelliSense: declaration is incompatible with "CPalette *CMfcPictureProcessingDlg::CreateBitmapPalette(<error-type> *pBitmap)" (declared at line 24 of "e:visual_studio_workplacemfcpictureprocessingmfcpictureprocessingMfcPictureProcessingDlg.h")
error C2061: syntax error : identifier 'CDib' e:visual_studio_workplacemfcpictureprocessingmfcpictureprocessingmfcpictureprocessingdlg.h
等等好多无厘头问题十几个
解决方法是在"工程名Dlg.h"中添加一句话:
class CDib;
这样在试图类文件中include这个类,然后用的的时候就不会出问题了。
总结:一般类目前还没有看到出问题的,只是在mfc视图类中使用自己定义的类时会出现,不管是作为函数的参数,还是单独实例化都会有问题,加上这句强制声明就没问题了~但是这个问题我搞了一天才明白
参考链接:
http://bbs.****.net/topics/391942352 解决了以后才看懂这个最后一个