is not a class or namespace name

在MFC编程中遇到类定义错误时,通过确保所有CPP实现文件第一条语句为'#includestdafx.h',并在stdafx.h中包含预编译头文件,可以解决xxxisnotaclassornamespacename的问题。预编译头文件通过编译stdafx.cpp生成,以工程名命名,后缀为pch,从而提高编译效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

is not a class or namespace name解决方法

       我在mfc编程里,头文件里声明了个类,然后在源文件里实现类里的函数,结果一堆错误:xxx is not a class or namespace name。

每建立一个新类,都要在classname.cpp文件中加入#include "stdafx.h"文件,而且加的位置要在第一行。原因:编译器通过一个头文件stdafx.h来使用预编译头文件,所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC 标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.cpp 生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。编译器通过一个头文件stdafx.h 来使用预编译头文件。stdafx.h 这个头文件名是可以在project 的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#includestdafx. h"指令,使用projectname.pch 编译这条指令之后的所有代码。        因此,所有的CPP 实现文件第一条语句都是:#include "stdafx.h"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值