求解决啊~~~~~~哪位大哥帮忙看一下这段程序哪里出问题了???

[复制链接]
查看11 | 回复1 | 2021-1-27 07:00:25 | 显示全部楼层 |阅读模式
/**************************************线程创建*************************************************************/
if(!SetCommMask(hCom,EV_RXCHAR))
{
AfxMessageBox(L"建立掩码失败");
}
hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEven,&dwParam,0,&dwThreadID);
if(hThreadEvent==INVALID_HANDLE_VALUE)
{
AfxMessageBox(L"事件线程创建失败");
}
else
{
fEventRun=true;
blnOpened=true;
}
/***********************************************************************************************************/
/**************************************线程函数*************************************************************/
DWORDThreadProcEven(LPVOIDpParam)
{
BYTEah[20];
CStringmyStr;
DWORDdwRead,dwRes;
DWORDdwEvtMask,error;
while(fEventRun)
{
dwEvtMask=0;
Eol.hEvent=CreateEvent(NULL,true,false,NULL);//OVERLAPPED结构的EOL设置为无信号
WaitCommEvent(hCom,&dwEvtMask,&Eol);//等待发生EOL变为有信号
switch(dwEvtMask)
{
caseEV_RXCHAR://当输入缓冲区里有一个字符时执行读操作
{
Rol.hEvent=CreateEvent(NULL,true,false,NULL);//设置ROl为无信号
if(Rol.hEvent==NULL)
{
AfxMessageBox(L"hEvent空");
return-1;
}
if(ReadFile(hCom,&ah,5,NULL,&Rol))//读出数据放入ah中
{
if(!PurgeComm(hCom,PURGE_RXCLEAR))//清除输入缓冲区
{
error=GetLastError();
myStr.Format(_T("ERRORcoed:[%d]"),error);
AfxMessageBox(myStr);//显示错误信息
}
AfxMessageBox(L"成功读出数据1");
}
else
{
dwRes=WaitForSingleObject(Rol.hEvent,5000);//等待读操作完成
switch(dwRes)
{
caseWAIT_OBJECT_0:
{
AfxMessageBox(L"成功读出数据2");
if(!PurgeComm(hCom,PURGE_RXCLEAR))
{
error=GetLastError();
myStr.Format(_T("ERRORcoed:[%d]"),error);
AfxMessageBox(myStr);
}
}
break;
caseWAIT_TIMEOUT:
{
AfxMessageBox(L"超时");
break;
}
}
}
}
}
}
return0;
}
/************************************************************************************************************/


/************************************************关闭线程******************************************************/
fEventRun=false;
CloseHandle(hThreadEvent);
/************************************************************************************************************/

调试的时候电脑老是死机

调试的时候360这个数一直涨一直涨到99%然后就蓝屏了
这是什么原因啊?????

分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:00:25 | 显示全部楼层
while循环里内存泄露了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行