读书人

WSAAsyncSelect模型的使用解决办法

发布时间: 2014-01-23 14:48:04 作者: rapoo

WSAAsyncSelect模型的使用
我启动一个线程,在线程里面启动TCP服务器,启动线程的时候没有把窗口句柄传输进去。
HWND hWnd=AfxGetMainWnd()->GetSafeHwnd();
if(SOCKET_ERROR==WSAAsyncSelect(m_SockSrv,hWnd,WM_SOCKET,FD_ACCEPT|FD_READ|FD_WRITE))
{
return;
}
这样写行不行?为什么捕获不到消息?谢谢。
因为我写的是一个动态链接库,上层程序没有把窗口句柄传输进来,所以不知道WSAAsyncSelect的第二个参数写什么,谢谢。
[解决办法]

测试蛮久,发现线程类里可以使用WSAAsyncSelect,第二个参数是窗口句柄,WM_SOCKET的响应函数必须在窗口类中(CTCPDlg)定义。。。线程类的m_pMainWnd保存的是窗口类指针,你线程在CTCPDlg类中开启,保存的是CTCPDlg指针。。。

读书人网 >VC/MFC

热点推荐