编程时遇到一个十分诡异的现象,望高手帮在下解决一下!!

baidiaohappy 2009-02-25 09:48:48
我在编写一个浏览器并且运行时,出现下列错误:
error C2143: syntax error : missing ';' before '*'
f:\c++\projects\browser\browserview.h(21) : error C2501: 'CBrowserDoc' : missing storage-class or type specifiers
f:\c++\projects\browser\browserview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
该错误指向 CBrowserDoc* GetDocument();
但当我将CBrowserDoc* GetDocument();注销后再添加上后,程序奇迹般的没错了,但只要一点Rebuilt All,就立马又出错。
源程序我已上传,望各位赐教。
...全文
272 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidiaohappy 2009-02-28
  • 打赏
  • 举报
回复
没人了么?那我结贴。了
rabbitlzx 2009-02-26
  • 打赏
  • 举报
回复
你自己添加的代码出问题了,应该放到 MSG_MAP 中吧
baidiaohappy 2009-02-26
  • 打赏
  • 举报
回复
我所写的程序的View类继承的CHtmlView类,
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code !
ON_WM_CREATE()
//}}AFX_MSG_MAP
ON_COMMAND(IDOK,OnNewPage)//此处是我自己加的代码,在MainFrame.cpp文件中
//以下均为我自己添加的函数

void CBrowserView::OnDocumentComplete(LPCTSTR lpszURL)
{
((CMainFrame*)GetParentFrame())->SetPage(lpszURL);
CHtmlView::OnDocumentComplete(lpszURL);
}

void CMainFrame::OnNewPage()
{
CString page;
m_wndDlgBar.GetDlgItem(IDC_ADDRESS)->GetWindowText(page);
((CBrowserView*)GetActiveView())->Navigate(page);
}

void CMainFrame::SetPage(LPCTSTR lpszURL)
{
m_wndDlgBar.GetDlgItem(IDC_ADDRESS)->SetWindowText(lpszURL);
}

以上就是引起错误的代码。望高手指点。
baidiaohappy 2009-02-26
  • 打赏
  • 举报
回复
'CBrowserDoc' 和'GetDocument'是自动生成的,我未作任何改变
happy002 2009-02-26
  • 打赏
  • 举报
回复
你给的代码里都没有'CBrowserDoc' 和'GetDocument'
baidiaohappy 2009-02-26
  • 打赏
  • 举报
回复
以上方法我都试了一次,但还是报错,而且错误都是一样的
herman~~ 2009-02-26
  • 打赏
  • 举报
回复
头文件没包含?
rabbitlzx 2009-02-26
  • 打赏
  • 举报
回复


BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code !
ON_COMMAND(IDOK,OnNewPage)//此处是我自己加的代码,在MainFrame.cpp文件中
//以下均为我自己添加的函数
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP() //还要加上这句,估计是你误删了

firsthym 2009-02-26
  • 打赏
  • 举报
回复
会不会是少头文件?试下下面这个
#include <afxtempl.h>

另外,
void CBrowserView::OnDocumentComplete(LPCTSTR lpszURL)
{
((CMainFrame*)GetParentFrame())->SetPage(lpszURL);
CHtmlView::OnDocumentComplete(lpszURL);
}

函数两个语句换个位置,试试
void CBrowserView::OnDocumentComplete(LPCTSTR lpszURL)
{
CHtmlView::OnDocumentComplete(lpszURL);
((CMainFrame*)GetParentFrame())->SetPage(lpszURL);

}
  • 打赏
  • 举报
回复
晕,你先把出错的那段发来看看就知道了.
lingyin55 2009-02-25
  • 打赏
  • 举报
回复
这种情况我也出现过,是缺少;lz看看是不是你类定义后}后面忘记加上;了
danxuezx 2009-02-25
  • 打赏
  • 举报
回复
你的附件打不开。这种问题一定是有地方少了“;”
baidiaohappy 2009-02-25
  • 打赏
  • 举报
回复
waizqfor,那你能给我个邮箱吗,我直接发给你?
waizqfor 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 baidiaohappy 的帖子:]
我在编写一个浏览器并且运行时,出现下列错误:
error C2143: syntax error : missing ';' before '*'
f:\c++\projects\browser\browserview.h(21) : error C2501: 'CBrowserDoc' : missing storage-class or type specifiers
f:\c++\projects\browser\browserview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
该错误指向 CBrowserDoc* GetDocument();
但当我将CBrowserDoc* GetD…
[/Quote]
资源打不开 如果你是你头文件里 看看是不是少了一个; 具体是在CBrowserDoc和GetDocument声明的地方
LZ检查一下

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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