调用CMSComm类函数put_PortOpen(true)总是谈出“port already open”, 程序不往下走了

mmm1024 mmm1024 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
环境:Dell D630 本本;XP professional SP2; vc2008; 在网上下载mscomm32.ocx(1998-06-24),放在c:\winnt\system32, 并用regsvr32注册; MFC 基于对话框程序;调试时串口上没接硬件。


问题:在初始化对话框程序中调用CMSComm类函数put_PortOpen(true)总是弹出“port already open”, 程序不往下走了。但主对话框能出来。


个人认为:“port already open”应该是mscomm32.ocx定义的。是不是需要连接硬件才能调试?


期望高手帮忙:如何用CMSComm类进行串口通信(PC与PLC之间)


代码:
BOOL CbDlg::OnInitDialog()
{
//省略自动生成的初始化对话框代码
// TODO: Add extra initialization here
if(m_ctrlComm.get_PortOpen())

{
m_ctrlComm.put_PortOpen(false);
}
else
{
AfxMessageBox(_T("端口no打开"));

}

m_ctrlComm.put__CommPort(1);
m_ctrlComm.put_InBufferSize(1024);
m_ctrlComm.put_OutBufferSize(512);
m_ctrlComm.put_Settings(_T("9600,n,8,1"));
m_ctrlComm.put_InputMode(1);
AfxMessageBox(_T("1"));//能执行到
m_ctrlComm.put_PortOpen(true);//执行到此就弹出“port already open”,并得到对话框
AfxMessageBox(_T("2"));//不能执行到,以下程序都不能执行到
if (m_ctrlComm.get_PortOpen())
{
m_ctrlComm.put_RThreshold(1);
m_ctrlComm.put_InputLen(0);
m_ctrlComm.get_Input();
AfxMessageBox(_T("1"));
}
AfxMessageBox(_T("2"));

return TRUE; // return TRUE unless you set the focus to a control
}
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
mmm1024
ATL 3,248 成员 48,530 内容