大家帮我看一下,这是怎么回事啊!!!!(语法肯定没错的,就是通不过,报几个莫名其妙的错误!)

Cry_Out 2006-08-16 10:04:02
这是开头的部分代码:


#include "MySocket1.h" // Added by ClassView

/////////////////////////////////////////////////////////////////////////////
// CSocketTest2Dlg dialog

class CSocketTest2Dlg : public CDialog
{
// Construction
public:

CMySocket1 m_sConnectSocket;
CMySocket1 m_sListenSocket;
CSocketTest2Dlg(CWnd* pParent = NULL); // standard constructor

void OnClose();
void OnReceive();


------------------------------------------------------

一编译,总是提示有这个错误:
k:\superteny\vc\test\sockettest2\sockettest2dlg.h(22) : error C2146: syntax error : missing ';' before identifier 'm_sConnectSocket'
(如这个错误:我实在是不明白,那里缺少了";" )


k:\superteny\vc\test\sockettest2\sockettest2dlg.h(22) : error C2501: 'CMySocket1' : missing storage-class or type specifiers
(这里也是,我已经将CMySocket1的头文件 MySocket1.h包含进来了,但还是missing storage-class
到底是什么原因啊????郁闷!!!!!!!!!!)


k:\superteny\vc\test\sockettest2\sockettest2dlg.h(22) : error C2501: 'm_sConnectSocket' : missing storage-class or type specifiers
k:\superteny\vc\test\sockettest2\sockettest2dlg.h(23) : error C2146: syntax error : missing ';' before identifier 'm_sListenSocket'
k:\superteny\vc\test\sockettest2\sockettest2dlg.h(23) : error C2501: 'CMySocket1' : missing storage-class or type specifiers
k:\superteny\vc\test\sockettest2\sockettest2dlg.h(23) : error C2501: 'm_sListenSocket' : missing storage-class or type specifiers
K:\SUPERTENY\VC\test\socketTest2\MySocket1.cpp(8) : warning C4067: unexpected tokens following preprocessor directive - expected a newline
socketTest2.cpp
void OnConnect();
void OnAccept();
...全文
366 17 打赏 收藏 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cry_Out 2006-08-16
  • 打赏
  • 举报
回复
哦,明白了,再次感谢!
stavck 2006-08-16
  • 打赏
  • 举报
回复
如果头文件中只有指针的定义、引用,使用 class声明就可以了,
如:
CSocketTest2Dlg * m_pDlg;

如果不是指针定义,就要使用头文件了
如:

CSocketTest2Dlg m_hDlg;
Cry_Out 2006-08-16
  • 打赏
  • 举报
回复
to:handsomerun(毛毛)

thank you very much!
搞掂了!

果然是这样,
能请问一下在什么情况下用
#include "socketTest2Dlg.h" // Added by ClassView

什么情况下用
class CSocketTest2Dlg;

吗?

以前一直是用C#的,最近做一个东西要用VC,不太熟!不好意思!
等下就结贴!
stavck 2006-08-16
  • 打赏
  • 举报
回复
再CMySocket1.cpp中加入
#include "socketTest2Dlg.h"
stavck 2006-08-16
  • 打赏
  • 举报
回复
把引用去掉
#include "socketTest2Dlg.h" // Added by ClassView
--》
class CSocketTest2Dlg;
handsomerun 2006-08-16
  • 打赏
  • 举报
回复
果然就象stavck(在河之洲) 说的那样
#include "socketTest2Dlg.h" // Added by ClassView
这个去掉

然后在
class CMySocket1 : public CAsyncSocket
上面添加
class CSocketTest2Dlg;

声明一下就可以了
Cry_Out 2006-08-16
  • 打赏
  • 举报
回复
我是LZ

我的CMySocket1的头文件的确又引用了CSocketTest2Dlg 的头文件,这样是否有问题?

这是CMySocket1.h的内容
-----------------------------------------------------------------------------


#include "socketTest2Dlg.h" // Added by ClassView

/////////////////////////////////////////////////////////////////////////////
// CMySocket1 command target

class CMySocket1 : public CAsyncSocket
{
// Attributes
public:

// Operations
public:
CMySocket1();
virtual ~CMySocket1();

// Overrides
public:
void SetParent(CSocketTest2Dlg* pDlg);
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMySocket1)
public:
virtual void OnAccept(int nErrorCode);
virtual void OnConnect(int nErrorCode);
virtual void OnReceive(int nErrorCode);
virtual void OnClose(int nErrorCode);
//}}AFX_VIRTUAL

// Generated message map functions
//{{AFX_MSG(CMySocket1)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG

// Implementation
protected:
private:
CSocketTest2Dlg* m_pDlg;
};

-------------------------------------------------------------------------------
stavck 2006-08-16
  • 打赏
  • 举报
回复
有可能CMySocket1的头文件中又引用了CSocketTest2Dlg 的头文件
DentistryDoctor 2006-08-16
  • 打赏
  • 举报
回复
// Added by ClassView?
handsomerun 2006-08-16
  • 打赏
  • 举报
回复
难道你没定义CMySocket1 这个类??

因为如果象楼上们说的那种错,是会报其他错的
handsomerun 2006-08-16
  • 打赏
  • 举报
回复
你那个头文件里面是什么内容………………
MySocket1.h
molan_1206 2006-08-16
  • 打赏
  • 举报
回复
MySocket1.h就是这里
这是你自己写的吗?
input了吗?
taianmonkey 2006-08-16
  • 打赏
  • 举报
回复
MySocket1.h在你的工作目录下吗?
huaren801007 2006-08-16
  • 打赏
  • 举报
回复
有时候如果在写分号的时候,切换到中文输入,写下的分号也容易出现这样的错误
cleverwyq 2006-08-16
  • 打赏
  • 举报
回复
MySocket1.h的类定义结束处少了分号把
thisisll 2006-08-16
  • 打赏
  • 举报
回复
MySocket1.h
应该是这里有问题
lzg0001 2006-08-16
  • 打赏
  • 举报
回复
应该是 MySocket1.h 中对 CMySocket1 类的定义有错误!
去看 CMySocket1.h 及 CMySocket1.cpp !

16,550

社区成员

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

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

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