MFC程序中主、子对话框类之间获取CSocket类对象出错问题解析:error C2248: “CSocket::CSocket”: 无法访问 private 成员(在“CSocket”类中声明)

  • (1)错误描述:在MFC程序中主对话框类利用网络套接字CSocket类和下位机进行通信;在MFC程序中子对话框类想要获取主对话框类的网络套接字变量时,可以通过

CMainDlg* parent;  //指向主对话框的指针

获取到主对话框的指针进而获取到指向套接字变量的指针,当时无法获取到网络套接字,不能进行套接字的成员函数操作如Close()的问题:

错误提示为:

错误 1     error C2248: “CSocket::CSocket”: 无法访问 private 成员(在“CSocket”类中声明)

 

  • (2)问题分析:使用CSocket网络套接字时,只能直接在主线程中进行,不用另开线程;CSocket套接字类对象在主线程中,子对话框类对象想要获取到主对话框类的套接字时,子对话框没有套接字对象或主套接字环境不同、线程不同,进而导致矛盾,不能获取主对话框类的CSocket类对象。

 

  • (3)解决:在主对话框类对象中进行CSocket类对象的操作,子对话框类对象不操作CSocket类对象,但可获取通过访问主对话框类的成员函数类获取套接字的信息。

 

猜你喜欢

转载自blog.csdn.net/qq_41969790/article/details/85196717