调用CMSComm类函数put_PortOpen(true)总是谈出“port already open”, 程序不往下走了
环境: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
}
问题:在初始化对话框程序中调用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
}
...全文
相关推荐
串口调试助手源程序编程详细过程.docx
这些可以通过调用MSComm控件的成员函数来完成,例如`m_ctrlComm.SetPortOpen(true)`打开串口,`m_ctrlComm.Set baudrate(9600)`设置波特率为9600
龚建伟 串口调试助手源程序
### 串口调试助手源程序知识点详解#### 一、串口调试助手源程序概览**龚建伟**发布的“串口调试助手源程序”是面向开发人员的一款实用资源,旨在帮助用户快速掌握如何使用Microsoft Communications
在基于单文档(SDI)程序中应用MSCOMM串口通讯控件
m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); else AfxMessageBox("Open Serial Port Failure!")
MFC 简易串口程序
而“串口”(Serial Port)是计算机硬件中用于进行串行通信的接口,常用于设备间的短距离通信,如打印机、调制解调器等。在这个"MFC简易串口程序"中,我们可以探讨以下几个关键知识点:1.
ComPort.rar
该项目是一个基于MFC框架的串口通信应用程序,通过CMSComm ActiveX控件实现串口参数配置与数据收发功能。程序包含串口枚举、参数设置及数据传输等核心模块,采用对话框界面实现用户交互,适用于W


