- 浏览: 26351 次
- 性别:
- 来自: 大连
最新评论
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()
发表评论
-
ORACLE 字符串操作
2012-07-06 09:51 719■ 字符串连接 SQL&g ... -
正则表达式引擎的规则
2012-07-06 09:45 532规则1:正则表达式引擎会对输入字符串尽快地开始匹配。它一次 ... -
快速学习正则表达式
2012-07-06 09:37 623正则表达式(Regular Expression,缩写为r ... -
释放DLL 调用DLL
2012-07-06 09:29 801HINSTANCE hDllInst; void Csto ... -
2年前写的js可输入可选的下拉框
2012-07-05 20:44 1155上海 天津 合肥 广东 杭州 福建 厦门 辽宁 ... -
.net组件程序设计
2012-07-03 13:42 715.net 组件程序设计 第一章 ... -
flex 事件触发篇
2012-07-02 10:20 646事件触发篇 完整代码 ... -
FLEX SPY的地址和示例
2012-07-02 10:20 696FLEXSPY 可以实时查看画面style,还可进行修改 ... -
flex datagird渲染图片和按钮
2012-07-02 10:20 614用户操作 [留言] [发消息] [加为好友] ... -
MyEclipse for Spring 8.6: Spring MVC Scaffolding
2012-07-02 09:42 669... -
Flex编程学习基础
2012-07-01 09:40 622Flex是Adobe公司推出 ... -
Flex + LCDS + Java 入门教程
2012-07-01 09:40 562一.引 很多 ... -
如何使用registerClassAlias来解决module中使用RemoteObject---第一次访问正常、第二次出错
2012-07-01 09:40 571问题:今天我在Flex的module中使用RemoteOb ... -
Flex4 使用RemoteObject BlazeDS 连接JAVA对象获取数据
2012-07-01 09:40 584使用FLEX4 和 JAVA进行通讯 并和JAVA内置的对 ... -
Flex remoteobject工作原理探讨
2012-07-01 09:40 582Flex访问远程服务都是通过AbstractService ... -
电脑休眠按钮灰色的解决方法
2012-06-30 17:56 1925这篇文章要是帮助 ... -
[总结]PostgreSQL服务启动又停止的解决方法
2012-06-30 17:56 1586安装PostgreSQL数据库8.3版本后,启动数据库服务 ... -
Oracle无法登录的解决方法
2012-06-30 17:56 517昨天电脑死机了,我就强制关机。今天开了电脑之后,发现Ora ... -
在BIOS中开启vt-x无效的解决方法
2012-06-30 17:56 13192010年10月10日发布了,ubuntu10.10 ,尝 ...
相关推荐
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. stdint.h是c99标准的头文件,vc不支持,所以肯定会提示“No such file or directory”的。使用方法:下载压缩包,解压得到两个.h...
C语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ERRORC语言头文件 ...
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语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言...
C++和传统C的头文件说明,如: #include <assert.h> //设定插入点 #include <ctype.h> //字符处理
DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC...
OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC...
C++常用头文件说明,C++常用头文件说明,C++常用头文件说明C++常用头文件说明
MFC类目录及头文件 MFC类目录及头文件 MFC类目录及头文件
memset头文件 c++版
Eclipse 中新建C 或C ++到项目时,头文件报警,显示“Unresolved inclusion:” 虽然不影响项目到编译和运行,确也无法查看头文件,让人感觉实在不爽。下面是在国外到网站上看到解决方案,自己整理了一下拿来分享一下...
C语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 STACKC语言头文件 ...
C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...
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类型位数头文件,直接#include <intlong.h>即可。(要把次头文件放入\CodeBlocks\MinGW\include里)