使用MSComm,在关闭窗口的时候,出现“端口已打开”的错误。怎么解决? 使用MSCOMM控件,在程序中打开串口后,点击右上角关闭窗口的按钮退出程序时,弹出一个“端口已打开”的对话框。而如果先将串口关闭后,再退出程序,则不会出现该对话框。请问应该如何解决这个问题?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 打开之前判断一下是否已经打开是的话先关闭,退出之前先判断是否关闭,是的话在close 在析构函数、WM_CLOSE、WM_DESTROY消息中使用m_Comm.SetPortOpen(FALSE);都不行因为在这句话执行之前,那个框就已经弹出来了。 给你一段原代码,实际工程里用的,没问题:if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(FALSE); //关闭串口if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); //打开串口else AfxMessageBox("串口故障"); 发出的代码少了一个!号,特更正如下:if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(FALSE); //关闭串口if(!m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); //打开串口else AfxMessageBox("串口故障"); 呵呵、第一次来csdn发帖、晒晒自己的情况吧、我大三学生 文件存储读取 动态库 如何设置窗口为忙碌状态? Dll类导出的错误? 如何实现单选按钮? 网络菜鸟问题? 简单问题:使我无法解决,请帮忙 资源共享:像Oicq一样的窗口自动隐藏,我写了一个,大家试试:) 怎样添加工程的包含路径 有谁能告诉我现在最需要的是做什么?苦恼的我等待你的指点迷津! 大家好,我是新人
退出之前先判断是否关闭,是的话在close
都不行因为在这句话执行之前,那个框就已经弹出来了。
if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); //打开串口
else AfxMessageBox("串口故障");
if(!m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); //打开串口
else AfxMessageBox("串口故障");