错误原因:“is not a class or namespace name”

sTahwja 2010-10-04 10:48:28
用vc++我建立了一个kyblue_PinTu的文件名,系统自动就生成了CSkyblue_PinTuView,
源代码是这样的
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
//创建1行2列的分裂视图
m_wndSplitter.CreateStatic(this,1, 2);

m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSkyblue_PinTuView), CSize(300,0), pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(COrgView), CSize(0,0), pContext);
//讲第一个作为当前激活状态的视图
m_wndSplitter.SetActivePane(0,0);

return TRUE;
}
COrgView是后面加入的类,本来也出现了“is not a class or namespace name”这个错误,后面加入头文件解决了
可是最先生成的这个却还是出现这个错误,谢谢。纠结挺久了,初学者。
...全文
1196 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jihaibin009 2012-08-03
  • 打赏
  • 举报
回复
谁会在文档视图里调出对话框视图啊,是那种贴在上面的那样
jihaibin009 2012-08-03
  • 打赏
  • 举报
回复
谢谢11楼的兄弟帮我解决了此问题THANKS
ritytir 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
果断地解决了问题
wangxiao0123 2011-10-12
  • 打赏
  • 举报
回复
楼主,你解决了没?我也是一样的问题啊,能帮忙解决下不?
tingwhere 2011-03-30
  • 打赏
  • 举报
回复
照11楼的方法来,还是不行啊
wltg2001 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stahwja 的回复:]
我建个名字叫kyblue_PinTu的工程会自动生成CSkyblue_PinTuView的视图啊,可是却提示“is not a class or namespace name”就这样啊。
[/Quote]
你试试在前面加上两行:
#include "Skyblue_PinTuDoc.h"
#include "CSkyblue_PinTuView.h
文件名可能不是这个,也就是加上文档类和视图类的头文件,注意:文档类的要加在前面。
wltg2001 2010-10-05
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "skyblue_PinTu.h"
#include "OrgView.h"
#include "skyblue_PinTuView.h"
#include "MainFrm.h"
======================
要在视图类的头文件之前加上文档类的头文件:
#include "stdafx.h"
#include "skyblue_PinTu.h"
#include "OrgView.h"
#include "XXXXXDoc.h"//不知道你的文档类的头文件名,你自己去加
#include "skyblue_PinTuView.h"
#include "MainFrm.h"
wltg2001 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tiger9991 的回复:]
楼主不仅头文件忘记加,而且加的地方有问题,最后也有可能你加漏了“;”号
[/Quote]
不是忘加头文件或是少了;号,由于视图类中引用了GetDocument内联函数,所以有时候要将文档类的头文件先加,然后再加视图类头文件。
傻X 2010-10-05
  • 打赏
  • 举报
回复
楼主不仅头文件忘记加,而且加的地方有问题,最后也有可能你加漏了“;”号
wltg2001 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 stahwja 的回复:]
我按你的意思去加了
可是出现了新的问题了
f:\工程\skyblue_pintu\skyblue_pintuview.h(21) : error C2143: syntax error : missing ';' before '*'
f:\工程\skyblue_pintu\skyblue_pintuview.h(21) : error C2501: 'CSkyblue_PinTuDoc' ……
[/Quote]
你确定是文档类的头文件加在视图类的头文件前面吗?
sTahwja 2010-10-05
  • 打赏
  • 举报
回复
我按你的意思去加了
可是出现了新的问题了
f:\工程\skyblue_pintu\skyblue_pintuview.h(21) : error C2143: syntax error : missing ';' before '*'
f:\工程\skyblue_pintu\skyblue_pintuview.h(21) : error C2501: 'CSkyblue_PinTuDoc' : missing storage-class or type specifiers
f:\工程\skyblue_pintu\skyblue_pintuview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
我才刚开始编拼图游戏的框架呢,还有好多问题没解决呢,算法就更难了。
wltg2001 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 stahwja 的回复:]
也有啊,没错,是放在前面的。。是不是定义问题呢。有两个错误,一个是'CSkyblue_PinTuView' : is not a class or namespace name'另一个是classCSkyblue_PinTuView' : undeclared identifier的错误,第二个是哪里来的呢,指向错误的地方是一样的,
m_wndSplitter.CreateView(0,0,RU……
[/Quote]
这第二个错误应该是没有包含CSkyblue_PinTuView类的头文件造成的。你看看在CMainFrame类中有没有包含是CSkyblue_PinTuView'类的头文件。
sTahwja 2010-10-05
  • 打赏
  • 举报
回复
是'CSkyblue_PinTu的头文件
class CSkyblue_PinTuView : public CView
{
protected: // create from serialization only
CSkyblue_PinTuView();
DECLARE_DYNCREATE(CSkyblue_PinTuView)

// Attributes
public:
CSkyblue_PinTuDoc* GetDocument();
//是否程序才开始运行
BOOL m_bFirstRun;
。。。。。
};
这个是在视图里面的构造函数
CSkyblue_PinTuView::CSkyblue_PinTuView()
{
// TODO: add construction code here
m_bFirstRun = TRUE;

}
sTahwja 2010-10-05
  • 打赏
  • 举报
回复
也有啊,没错,是放在前面的。。是不是定义问题呢。有两个错误,一个是'CSkyblue_PinTuView' : is not a class or namespace name'另一个是classCSkyblue_PinTuView' : undeclared identifier的错误,第二个是哪里来的呢,指向错误的地方是一样的,
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSkyblue_PinTuView), CSize(300,0), pContext);
sTahwja 2010-10-04
  • 打赏
  • 举报
回复
我建个名字叫kyblue_PinTu的工程会自动生成CSkyblue_PinTuView的视图啊,可是却提示“is not a class or namespace name”就这样啊。
wltg2001 2010-10-04
  • 打赏
  • 举报
回复
说得不清不楚的,不好回答

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧