我已经加了头"Sock1Dlg.h"在类中使用时,编译出现错误:error C2065: “CSock1Dlg”: 未声明的标识符 20
Sock1Dlg.h是向导自动生z成的#include"Sock1Dlg.h"//CMySocket命令目标classCMySocket:publicCAsyncSock...
Sock1Dlg.h是向导自动生z成的
#include "Sock1Dlg.h"
// CMySocket 命令目标
class CMySocket:public CAsyncSocket
{
public:
void SetParent(CDialog *pWnd);
protected:
virtual void OnClose(int nErrorCode)
{
((CSock1Dlg*)m_pWnd)->OnClose();
}
virtual void OnReceive(int nErrorCode)
{
((CSock1Dlg*)m_pWnd)->OnReceive();
}
virtual void OnAccept(int nErrorCode)
{
if(nErrorCode==0)
{
(CSock1Dlg*)m_pWnd->OnAccept();
}
}
private:
CDialog* m_pWnd;
};
我的ip是:122.139.128.129
用户名b 密码1234 你可以远程控制我的电脑,我开着vs2008
QQ:459281182
是不是连接不上? 我把工程压缩了:http://www.zhouqiming.com/asp/Sock1.rar 展开
#include "Sock1Dlg.h"
// CMySocket 命令目标
class CMySocket:public CAsyncSocket
{
public:
void SetParent(CDialog *pWnd);
protected:
virtual void OnClose(int nErrorCode)
{
((CSock1Dlg*)m_pWnd)->OnClose();
}
virtual void OnReceive(int nErrorCode)
{
((CSock1Dlg*)m_pWnd)->OnReceive();
}
virtual void OnAccept(int nErrorCode)
{
if(nErrorCode==0)
{
(CSock1Dlg*)m_pWnd->OnAccept();
}
}
private:
CDialog* m_pWnd;
};
我的ip是:122.139.128.129
用户名b 密码1234 你可以远程控制我的电脑,我开着vs2008
QQ:459281182
是不是连接不上? 我把工程压缩了:http://www.zhouqiming.com/asp/Sock1.rar 展开
展开全部
这是明显的交叉编译问题,你在这里include了Sock1Dlg.h,然后再Sock1Dlg.h里面又inlcude了这个头文件。编译器处理总有个先后啊。
修改方法如下:
// Sock1Dlg.h : header file
//
#pragma once
#include "afxwin.h"
//#include "MySocket.h"
class CMySocket;
class CSock1Dlg : public CDialog
{
// Construction
public:
CSock1Dlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
enum { IDD = IDD_SOCK1_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CMySocket *m_sConnectSock;
CMySocket *m_sListenSock;
CButton m_ctlConnect;
CString m_strMessage;
CString m_strName;
int m_iPort;
int m_iType;
afx_msg void OnBnClickedBclose();
afx_msg void OnBnClickedBsend();
afx_msg void OnBnClickedConnect();
CListBox m_ctlSend;
CListBox m_ctlRecvd;
afx_msg void OnBnClickedRclient();
public:
void OnClose();
void OnReceive();
void OnAccept();
};
然后在cpp文件里面将对象调用改成指针调用,还有这两个对象在构造函数里面new出来。
修改方法如下:
// Sock1Dlg.h : header file
//
#pragma once
#include "afxwin.h"
//#include "MySocket.h"
class CMySocket;
class CSock1Dlg : public CDialog
{
// Construction
public:
CSock1Dlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
enum { IDD = IDD_SOCK1_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CMySocket *m_sConnectSock;
CMySocket *m_sListenSock;
CButton m_ctlConnect;
CString m_strMessage;
CString m_strName;
int m_iPort;
int m_iType;
afx_msg void OnBnClickedBclose();
afx_msg void OnBnClickedBsend();
afx_msg void OnBnClickedConnect();
CListBox m_ctlSend;
CListBox m_ctlRecvd;
afx_msg void OnBnClickedRclient();
public:
void OnClose();
void OnReceive();
void OnAccept();
};
然后在cpp文件里面将对象调用改成指针调用,还有这两个对象在构造函数里面new出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询