winsock中使用MESSAGEBOX死机问题?

快乐小Y 2010-04-30 09:43:06
客户端线程函数:
DWORD WINAPI ClientThread(LPVOID lpParam)
{
while(!bStopThread)
{
//int pos;//字符串定位
nRet = select(0,&SocketSet,NULL,NULL,&timeout);
if (nRet != 0)
{
memset(cMessage,'\0',sizeof(cMessage));
iRecv = recv(sClient,cMessage,1024,0);
cMessage[iRecv] = '\0';

}
if(strstr(cMsgData,"ON")!=NULL)
{
if(MessageBox(NULL,"老师将远程控制你的电脑,是否同意?","提问",MB_YESNO)==IDYES)
{
SendMsg(sClient,"3|RomteHelp|YES");

}
else
{
SendMsg(sClient,"2|RomteHelp|NO");
}
}

}
}
客户端程序一旦收到命令去执行MESSAGEBOX这个函数时,客户端关闭后就会死机,但如果把MESSAGEBOX删除掉,就没有这个问题,为什么呢?请大虾告之。
...全文
188 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐小Y 2010-05-10
  • 打赏
  • 举报
回复
没有得到最终答案,不过还是谢谢各位!
zealotddv 2010-05-04
  • 打赏
  • 举报
回复
尝试下换成afxmessagebox吧
ccpaishi 2010-04-30
  • 打赏
  • 举报
回复
线程函数里有阻塞函数,不至于死机吧。你是不是调试状态下在线程内僵死的情况。
cabinriver 2010-04-30
  • 打赏
  • 举报
回复
线程函数里要用AfxMessageBox吧
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bragi523 的回复:]
先把这句注掉试试
SendMsg(sClient,"3|RomteHelp|YES");

如果没事了
就是你那个message处理的问题
[/Quote]
是MESSAGEBOX的问题!我试过了,电脑死了。
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bragi523 的回复:]
先把这句注掉试试
SendMsg(sClient,"3|RomteHelp|YES");

如果没事了
就是你那个message处理的问题
[/Quote]
我试试看
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
有没有这方面经验的朋友,指点一二啊。我想知道为什么,虽然问题解决了!
bragi523 2010-04-30
  • 打赏
  • 举报
回复
先把这句注掉试试
SendMsg(sClient,"3|RomteHelp|YES");

如果没事了
就是你那个message处理的问题
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
我自己定义一个MESSAGEBOX,不阻塞线程就可以。用系统MESSAGEBOX,通信感觉上没有问题,但最后关掉程序时,问题就来了。
尹成 2010-04-30
  • 打赏
  • 举报
回复
?还是不行吗那样,

友情支持,三颗心关照,up~up~up~!!
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
有关闭啊,我是占击过的。可以通信的,但是关闭客户端,桌面就死了。
[Quote=引用 1 楼 aa3000 的回复:]
执行 MessageBox 后有关闭 MessageBox 吗?
[/Quote]
aa3000 2010-04-30
  • 打赏
  • 举报
回复
执行 MessageBox 后有关闭 MessageBox 吗?
快乐小Y 2010-04-30
  • 打赏
  • 举报
回复
发布版也一样死的,不是调试过程中,是什么事都做完了,想关掉客户端,结果就挂了。
难道MESSAGEBOX占用一段时间就不行了。
还是MESSAGEBOX消息对线程有影响呢?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧