2 u011117395 u011117395 于 2016.02.20 16:04 提问

换了一台电脑就崩溃了

我的一个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++小白。。

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.21 06:43

我的错误好像与f盘的一个叫dd的文件夹有关。
不是,这个是你的mfc编译计算机的源代码目录(基本上是一个微软的程序员的电脑上的文件),和你无关。

检查下你的程序,比如端口不存在,已经被占用,或者参数不对。

lyhoo163
lyhoo163   Rxr 2016.02.21 06:39

这应该是笔记本的串口驱动与你的代码不匹配造成的,试着找驱动安装吧!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!