我的一个MFC的vs2010工程,能够实现串口通信。之前,在笔记本A上实验,串口是可以打开的,会显示“端口xxx设置成功”。但是当我把这个工程的文件夹原封不动的拷贝到笔记本B时,连接串口时就会报错。我的部分代码如下:
//else if(pMain->m_I2CDlgBar1.m_InterfaceType == 0)//选择串口通信
//{
CEdit pEdit;
CString Band_rate;
CString portStr,portstrtemp;
short portint;
static BOOL frist;
PortNewNum=pMain->m_I2CDlgBar1.m_port_num.GetCurSel()+1;//索引为0指的是COM1
pEdit=(CEdit)(pMain->m_I2CDlgBar1.GetDlgItem(IDC_COMBO_BAND_RATE));
pEdit->GetWindowText(Band_rate);
m_strSeting= Band_rate+",n,8,1";//不懂
if(!COMOPEND)//COMOPEND是一个BOOL型的成员变量,初始值为FALSE.
{
DWORD style=WS_VISIBLE|WS_CHILD;
if (!m_comm.Create(NULL,style,CRect(0,0,0,0),this,ID_COMM))//create a Active Control,找不到ID_COMM对应的控件啊!!
{
COMOPEND=FALSE;
AfxMessageBox("Failed to create MSComm");
}
COMOPEND=TRUE;
m_comm.SetCommPort(PortNewNum);//设置端口号
m_comm.SetInBufferSize(4096*2);
m_comm.SetOutBufferSize(512);
if (!m_comm.GetPortOpen())//如果端口没打开,则打开
{
m_comm.SetPortOpen(TRUE);//打开
portint=m_comm.GetCommPort();
portStr.Format(_T("%d"),portint);
portstrtemp="端口"+portStr+"设置成功";
frist=TRUE;
MessageBox(portstrtemp);
}
但我单步运行调试运行“m_comm.SetCommPort(PortNewNum);”这一句时,程序就会崩溃。弹出下面这个框:
图中显示,我的错误好像与f盘的一个叫dd的文件夹有关。但是我的两个笔记本A和B中的f盘里都没有这样一个文件夹啊,我觉得好奇怪,一时不知道改如何去差错,大神们快帮帮我吧,本人c++小白。。
换了一台电脑就崩溃了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-