新手请教:unexpected 'class CSrvSocket ('

ClassDan 2008-06-07 11:23:31
新建一MFC基于对话框的程序ChatServer,支持Socket。

插入一个Generic Class,命名为CSrvSocket,以public方式继承于CAsyncSocket。

SrvSocket.h
--------------------------------------------------------------------------------------------
#if !defined(AFX_SRVSOCKET_H__AD84633D_8760_42B6_9D7E_403064FFB0D5__INCLUDED_)
#define AFX_SRVSOCKET_H__AD84633D_8760_42B6_9D7E_403064FFB0D5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ChatServerDlg.h"

class CSrvSocket : public CAsyncSocket
{
public:
CSrvSocket(CChatServerDlg * pDlg);
virtual ~CSrvSocket();

private:
CChatServerDlg * m_pDlg;
};

#endif
----------------------------------------------------------------------------------------------


ChatServerDlg.h
----------------------------------------------------------------------------------------------
#include "SrvSocket.h"

//添加如下成员变量
private:
CSrvSocket * m_LiSocket;
CSrvSocket * m_ConSocket;
----------------------------------------------------------------------------------------------

编译运行,提示错误:
Compiling...
ChatServer.cpp
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(17) : error C2629: unexpected 'class CSrvSocket ('
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(17) : error C2238: unexpected token(s) preceding ';'
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2143: syntax error : missing ';' before '*'
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2501: 'CChatServerDlg' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2501: 'm_pDlg' : missing storage-class or type specifiers
ChatServerDlg.cpp
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(17) : error C2629: unexpected 'class CSrvSocket ('
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(17) : error C2238: unexpected token(s) preceding ';'
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2143: syntax error : missing ';' before '*'
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2501: 'CChatServerDlg' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\myprojects\chatserver\srvsocket.h(21) : error C2501: 'm_pDlg' : missing storage-class or type specifiers
SrvSocket.cpp
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(46) : error C2143: syntax error : missing ';' before '*'
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(46) : error C2501: 'CSrvSocket' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(46) : error C2501: 'm_LiSocket' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(47) : error C2143: syntax error : missing ';' before '*'
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(47) : error C2501: 'CSrvSocket' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\myprojects\chatserver\chatserverdlg.h(47) : error C2501: 'm_ConSocket' : missing storage-class or type specifiers
Generating Code...
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ClassDan 2008-06-16
  • 打赏
  • 举报
回复
算了,这个问题我再慢慢解决吧,还是谢谢Mackz!结帖。。。
ClassDan 2008-06-08
  • 打赏
  • 举报
回复
谢谢Mackz为我解答!还有一个问题:什么是类的前置声明(作用)?什么时候应该使用类的前置声明?
菜牛 2008-06-08
  • 打赏
  • 举报
回复
你这个是互相包含的问题,在
class CSrvSocket
前面用class CChatServerDlg;前置声明,#include "ChatServerDlg.h"放到SrvSocket.cpp文件中。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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