打印

VS2008MFC 串口编程一问!

[复制链接]
1825|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenyuejian|  楼主 | 2013-1-29 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Windows7下VS2008MFC基于对话框应用程序
我在OnInitDialog()里面Creat了串口对象
m_ctrlComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);
点击串口按钮执行:
if( !m_ctrlComm.get_PortOpen())   // 串口在此进程中还未打开
{
————————————————————初始化
try
  {
   m_ctrlComm.put_PortOpen(TRUE);//打开串口,如果其它程序已经打开此串口,程序会在此出现异常
  }
  catch(COleDispatchException *e)
  {
   TCHAR   szCause[255];
     CString strFormatted;
     e->GetErrorMessage(szCause, 255);
     strFormatted = _T("The data file could not be opened because of this error: ");
     strFormatted += szCause;
     AfxMessageBox(strFormatted);
   //MessageBox((portnumText+_T("  已被占用!")),_T("系统提示:"),MB_ICONERROR);
   return;
  }
}
其他地方的数据发送就直接采用:
m_ctrlComm.put_Output(COleVariant(array1));
整个过程中关闭串口也有执行:
m_ctrlComm.put_PortOpen(FALSE);
在起初的调试阶段一直正常,今天忽然一点调试开就出现了错误:
operation valid only when the port is open !
还会提示:
MFComm.exe 中的 0x755b969b 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0026e7d8 处的 COleDispatchException。
Warning: Uncaught exception in WindowProc (returning 0).

先前怀疑是电脑的串口被占用,但是试了复位全部串口还是不行。
现在网上查找怀疑是哪里存在内存泄露,因为我每次尝试打开串口都会有
MFComm.exe 中的 0x755b969b 处最可能的异常: Microsoft C++ 异常: 内存位置 0x001ee07c 处的 COleDispatchException。
自己对电脑的串口机制还不了解,拜托各位高手指点,感激不尽。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

45

帖子

1

粉丝