//Mysocket.h如下
#include "TalkDlg.h"
class CMySocket : public CAsyncSocket
{public:
void SetParent(CTalkDlg* pDlg);
private:
CTalkDlg* m_pDlg;//TalkDlg.h如下
#include "MySocket.h"
class CTalkDlg : public CDialog
{
private:
CMySocket m_sListenSocket;
CMySocket m_sConnectSocket; 编译会出错,如果不是相互包含就不会出错了。
但是我又如上代码所示,需要相互包含的。
#include "TalkDlg.h"
class CMySocket : public CAsyncSocket
{public:
void SetParent(CTalkDlg* pDlg);
private:
CTalkDlg* m_pDlg;//TalkDlg.h如下
#include "MySocket.h"
class CTalkDlg : public CDialog
{
private:
CMySocket m_sListenSocket;
CMySocket m_sConnectSocket; 编译会出错,如果不是相互包含就不会出错了。
但是我又如上代码所示,需要相互包含的。
class CTalkDlg;
class CMySocket : public CAsyncSocket
{public:
void SetParent(CTalkDlg* pDlg);
private:
CTalkDlg* m_pDlg;
}
#include "MySocket.h"
class CTalkDlg : public CDialog
{
private:
CMySocket m_sListenSocket;
CMySocket m_sConnectSocket;
}#include "MySocket.h"
class CTalkDlg : public CDialog
{
private:
CMySocket m_sListenSocket;
CMySocket m_sConnectSocket;
class CMySocket : public CAsyncSocket
{public:
void SetParent(CTalkDlg* pDlg);
private:
CTalkDlg* m_pDlg; /***************/////改为 CDialog *m_pDlg;在定义文件里包含#include "TalkDlg.h"将m_pDlg指向CTalkDlg对象就可以了。
每个头文件加上宏编译
#if !define MySocket_h
define MySocket_h
#include "TalkDlg.h"
class CMySocket : public CAsyncSocket
{public:
void SetParent(CTalkDlg* pDlg);
private:
CTalkDlg* m_pDlg;#endif#if !define TalkDlg_h
define TalkDlg_h
//TalkDlg.h如下
#include "MySocket.h"
class CTalkDlg : public CDialog
{
private:
CMySocket m_sListenSocket;
CMySocket m_sConnectSocket;
#endif