kallo 发表于 2013-9-16 12:28:19

Vc++ 2010 下使用MScomm控件编写串口调试工具时接收时死机

操作环境:win7, VC++ 2010, MScomm控件
目标:写个简单的串口调试工具
问题:
当发端不断发送1时,使用此工具,能够显示,但是会出现死机的情况(鼠标点击按键不能操作,发送区输入数据无法输入等等)

接收数据的代码基本仿照网上的程序:
VARIANT variant_inp;
        COleSafeArray safearray_inp;
        LONG len,k;
        BYTE rxdata;        //设置BYTE数组
        CString strtemp;
       
        if(m_mscomm.get_CommEvent()==2)        //值为2表示接收缓冲区内有字符
        {
//                cnt++;
                variant_inp=m_mscomm.get_Input();//读缓冲区消息
                safearray_inp=variant_inp;        //变量转换
                len=safearray_inp.GetOneDimSize();//得到有效的数据长度
                for(k=0;k<len;k++)
                        safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
                for(k=0;k<len;k++)
                {
                        BYTE bt=*(char *)(rxdata+k);
                        strtemp.Format(_T("%02X"),bt);        //将字符以十六进制方式送入临时变量strtemp存放,注意加入个空格
                        m_EditRecv+=strtemp;        //加入接收
                        m_EditRecv+="\r\n";
                }

        }
        UpdateData(FALSE);//更新编辑框内容


请问下,为什么会出现此情况呢?有什么好的解决方法吗?
页: [1]
查看完整版本: Vc++ 2010 下使用MScomm控件编写串口调试工具时接收时死机