能否把你的问题说清楚点,你到底想问什么,碰到什么问题。

解决方案 »

  1.   


    void   CSCommTestDlg::OnComm()   

            //   TODO:   Add   your   control   notification   handler   code   here 
            VARIANT   variant_inp; 
            COleSafeArray   safearray_inp; 
            LONG   len,k; 
            BYTE   rxdata[2048];   //设置BYTE数组 
            CString   strtemp; 
            if(m_ctrlComm.GetCommEvent()==2)   //事件值为2表示接收缓冲区内有字符 
            { 
                  variant_inp=m_ctrlComm.GetInput();   //读缓冲区 
                    safearray_inp=variant_inp;     //VARIANT型变量转换为ColeSafeArray型变量 
                    len=safearray_inp.GetOneDimSize();   //得到有效数据长度 
                    for(k=0;k <len;k++) 
                            safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组 
                    ///////////////////////
                    m_strEditRXData = ""; //初始化m_strEditRXData
                    for(k=0;k <len;k++)                           //将数组转换为Cstring型变量 
                    { 
                         BYTE   bt=*(char*)(rxdata+k);         //字符型 
                            strtemp.Format("%c",bt);         //将字符送入临时变量strtemp存放 
                            m_strEditRXData+=strtemp;     //加入接收编辑框对应字符串         
                    } 
            } 
            UpdateData(FALSE);     //更新编辑框内容