写了一个程序,开了一个工作线程,在工作线程里用到CAsynSocket类,而CAsynSocket类里面需要处理OnConnect、OnReceive类,需要用到消息循环,该怎样处理呢?
解决方案 »
- 有人研究过directsound吗?
- Windows网络编程方面的书
- 说说你代码中的防错处理
- bitblt后怎么保存到一个新的图片。
- UDP Socket向一个未被使用的端口发送数据之后,recvfrom为什么会收到WSAECONNRESET?
- 关于键盘全局钩子函数LowLevelKeyboardProc
- 不知道具体的串口通信协议,怎样具体接收到正确的数据流?
- 关于bmp类型的透明问题
- 强烈建议成立crack专栏,同意的请跟帖。
- 请问如何简单确定右键点击的是哪个控件?
- DISPID_HTMLELEMENTEVENTS2_ONCLICK为什么总是报告不认识
- 打开程序关联的文件后,我怎么知道关联文件的路径?
{
/*......
你的乱七八糟的初始化,操作什么的....
*/ MSG msg;
while(GetMessage(&msg,NULL,0,0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return EXIT_SUCCESS;
}
{
/*......
你的乱七八糟的初始化,操作什么的....
(我在这里代码里就调用了Connect函数引起了OnConnect消息,而这时候消息循环还没有产生啊,所以程序还是运行不起来啊,怎么办呢,如不在这里调用,怎么办呢?
*/ MSG msg;
while(GetMessage(&msg,NULL,0,0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return EXIT_SUCCESS;
}
微软的那个示例里好像用的用户界面线程吧
{
/*......
你的乱七八糟的初始化,操作什么的....
*/ MSG msg;
while(GetMessage(&msg,NULL,0,0)
{
TranslateMessage(&msg); switch(msg.MESSAGE_ID/*忘记了这个叫什么名字*/){
case WM_XXX:
DoXXX();
break;
case WM_YYY:
DoYYY();
break;
}
}
return EXIT_SUCCESS;
}
2 CAsynSocket 本身包含一个窗口,所有他的消息会从这个窗口走,不用担心这个问题
1、用户界面线程CWinThread代替工作者线程
2、工作者线程中自己实现消息循环,这个我已经作了个测试,如果要,可以发给你。对于 CAsynSocket 本身包含一个窗口,所有他的消息会从这个窗口走,不用担心这个问题,同意