`
haoliyouyo
  • 浏览: 26351 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

MFC之头文件相互包含问题及解决方法 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

 
阅读更多

    MFC之头文件相互包含问题及解决方法 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 收藏
  问题一:
  error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
  原因分析:
  1. (此情况经常出现在大型工程项目中)如果存在两个类的头文件a.h和b.h,在a.h中有这样的语句:#include "b.h",在b.h文件中有这样的语句:#include "a.h"且在一个类中有另一个类的对象时,那么就会出现这样的错误。
  2. 没有包含要定义的类的头文件。
  3.项目中少加了宏定义,导致头文件重复定义或相应宏无法识别。
  4.当有多个头文件时,顺序写反也可能导致相关的错误,其根本是头文件中的预编译语句被隐去了。
  5. 可能是函数没有写返回值
  解决方法:
  我遇到的问题系第一种情况,即头文件的相互包含问题,经过多次尝试,最后发现在一个类中使用另外一个类时,应该在前面应该声明另外那个需要引用的类,即例如:
  class CDIProView;
  // CSlideThreshod2 对话框
  class CSlideThreshod2 : public CDialog
  {
  CDIProView * m_pView;
  ......
  }
  问题二:
  应该不能称之为问题,就是自定义消息,感觉还是挺有用的,最近在非模态对话框中使用到自定义消息~~~ 自定义消息步骤:
  第一步:用户自定义消息宏
  #define WM_MY_MESSAGE (WM_USER + n)
  第二步:实现消息处理函数,该函数使用WPRAM和LPARAM参数并返回LPESULT
  LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
  {
  // TODO: 处理用户自定义消息
  ...
  return 0;
  }
  第三步:在类头文件的AFX_MSG块中说明消息处理函数
  class CMainFrame:public CMDIFrameWnd
  {
  ...
  // 一般消息映射函数
  protected:
  // {{AFX_MSG(CMainFrame)
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnTimer(UINT nIDEvent);
  afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()
  }
  第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中
  BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  //{{AFX_MSG_MAP(CMainFrame)
  ON_WM_CREATE()
  ON_WM_TIMER()
  ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
  //}}AFX_MSG_MAP
  END_MESSAGE_MAP()
分享到:
评论

相关推荐

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory. stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory。

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory. stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。使用方法:下载压缩包,解压得到两个.h...

    C语言头文件 ERROR

    C语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ...

    无法打开包括文件:“stdint.h”

    fatal error C1083: 无法打开包括文件:“stdint.h”: No such file or directory stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。 解决办法:下载文件之后将文件移动到...

    C++中头文件相互包含的几点问题

    本文说明了,在c++中,当多文件编译时各种头文件及各种类的相互包含时的一些注意事项及解决方法.

    C++的头文件互相包含的问题

    C++的头文件互相包含的问题。比较有用的解决办法。

    C和C++头文件对比一览

    同时标准化委员会声明就有的C++头文件将不再列于被支持的名单之中了,而旧有的C头文件为了满足“对C的兼容性”这个古老契约,仍然将继续存活下去。 但是,那些编译器厂商不可能去推翻他们客户的旧有编译器(也跟本...

    C语言头文件 NB30 C语言头文件 NB30

    C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言...

    C++头文件一览---C++和传统C头文件说明

    C++和传统C的头文件说明,如: #include <assert.h> //设定插入点 #include <ctype.h> //字符处理

    C语言头文件 DIR C语言头文件 DIR

    DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC...

    C语言头文件 OLE C语言头文件 OLE

    OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC...

    C++常用头文件说明

    C++常用头文件说明,C++常用头文件说明,C++常用头文件说明C++常用头文件说明

    MFC类目录及头文件

    MFC类目录及头文件 MFC类目录及头文件 MFC类目录及头文件

    memset头文件c++版

    memset头文件 c++版

    Eclipse添加C/C++头文件跳转

    Eclipse 中新建C 或C ++到项目时,头文件报警,显示“Unresolved inclusion:” 虽然不影响项目到编译和运行,确也无法查看头文件,让人感觉实在不爽。下面是在国外到网站上看到解决方案,自己整理了一下拿来分享一下...

    C语言头文件 STACK

    C语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 ...

    C语言头文件 MAP C语言头文件 MAP

    C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...

    C C++头文件一览.pdf

    C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件C C++头文件

    求int类型位数头文件

    求int类型位数头文件,直接#include <intlong.h>即可。(要把次头文件放入\CodeBlocks\MinGW\include里)

Global site tag (gtag.js) - Google Analytics