zoukankan      html  css  js  c++  java
  • 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.csdn.net/topics/391942352 解决了以后才看懂这个最后一个
  • 相关阅读:
    排序算法 之 冒泡排序 插入排序 希尔排序 堆排序
    DataStructure之线性表以及其实现
    使用可重入函数进行更安全的信号处理
    内存经济学
    电脑通用技能
    循环套餐的逻辑
    占用了多少内存
    索引的用法
    电脑的眼缘
    字符串积木
  • 原文地址:https://www.cnblogs.com/studylyn/p/6636764.html
Copyright © 2011-2022 走看看