标题:串口程序debug版正常,release版读不出数据
取消只看楼主
purplesail
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-19
结帖率:0
已结贴  问题点数:20 回复次数:0 
串口程序debug版正常,release版读不出数据
部分代码如下:
void CAisDlg::OnCommAisMscomm()
{
// TODO: 在此处添加消息处理程序代码
//m_Rxdata.Empty();
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len=0,k=0;
BYTE rxdata[20480];//设置BYTE数组
CString strtemp;
float rot=0;
if(m_cSerialCom.get_CommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
m_Rxdata.Empty();
variant_inp=m_cSerialCom.get_Input(); //读缓冲区
safearray_inp=variant_inp;  //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k <len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
}
for(k=0;k <len;k++)            //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k);    //字符型
strtemp.Format(_T("%c"),bt);    //将字符送入临时变量strtemp存放

m_Rxdata+=strtemp;
}

    在release下设计断点,发现len的值不正常,似乎缓冲区数据没有读出来,len=safearray_inp.GetOneDimSize(); 这条语句后,len的值没有改变,但是在debug版本下是正常的,可以读出数据。
    麻烦各位帮帮忙!!!多谢
搜索更多相关主题的帖子: 串口 
2009-08-19 08:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283166-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078024 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved