串口程序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版本下是正常的,可以读出数据。
麻烦各位帮帮忙!!!多谢