- (1)错误描述:在MFC程序中主对话框类利用网络套接字CSocket类和下位机进行通信;在MFC程序中子对话框类想要获取主对话框类的网络套接字变量时,可以通过
CMainDlg* parent; //指向主对话框的指针
获取到主对话框的指针进而获取到指向套接字变量的指针,当时无法获取到网络套接字,不能进行套接字的成员函数操作如Close()的问题:
错误提示为:
错误 1 error C2248: “CSocket::CSocket”: 无法访问 private 成员(在“CSocket”类中声明)
- (2)问题分析:使用CSocket网络套接字时,只能直接在主线程中进行,不用另开线程;CSocket套接字类对象在主线程中,子对话框类对象想要获取到主对话框类的套接字时,子对话框没有套接字对象或主套接字环境不同、线程不同,进而导致矛盾,不能获取主对话框类的CSocket类对象。
- (3)解决:在主对话框类对象中进行CSocket类对象的操作,子对话框类对象不操作CSocket类对象,但可获取通过访问主对话框类的成员函数类获取套接字的信息。