编写了一个串口通信的工具,为什么发送AT命令后,回显的AT命令在我的Edit Box上显示的都是数字,这是为何?是因为从接收缓冲区接受VARIANT型数据后转换成CString型的数据,这个过程出错了吗?过程就在以上代码中
void CPortCommDlg::OnOnCommMscomm() 

    UpdateData(FALSE); 
switch(m_COM.GetCommEvent()) 

case 1: //GetCommEvent()==1: event of comEvSend 

OnSend(); 

break; 
case 2: //GetCommEvent()==2: event of comEvReceive 

            VARIANT variant_inp; 
COleSafeArray safearray_inp; 
LONG len,k,mReCount=0; 
BYTE rxdata[2048]; 
CString strtemp; 
variant_inp=m_COM.GetInput(); //read the Receive buffer & delete 
            safearray_inp=variant_inp; 
len=safearray_inp.GetOneDimSize(); 
for(k=0;k <len;k++) 

safearray_inp.GetElement(&k,rxdata+k);  //rxdata指向radata[0] 

for(k=0;k <len;k++) 

mReCount++; 
                BYTE bt=*(char*)(rxdata+k); 
strtemp.Format("%02x",bt); 
m_Output+=strtemp; 

            if((mReCount>0)&&((mReCount%16)==0)) 

strtemp.Format("\r\n"); 
    m_Output+=strtemp; 

UpdateData(FALSE); 
if((mReCount/16)>=13) 

                m_ScrollBarControl.SendMessage(EM_SCROLL,SB_LINEDOWN,0); 

this->UpdateData(FALSE); 

break; 
    case 1009: //GetCommEvent()==1009: error of comEventRxParity 

::AfxMessageBox("奇偶校验错误,请跳楼!"); 

break; 
default: 
break; 

    this->UpdateData(FALSE);