大家好:
   我是个未入门的vc,小小的问题!在m_receive(Edit控件的Menber名)中显示从串口读到的字符串时,进入debug一步步得的结果和直接得到的结果不同!我感到很惊讶!!!
   例如接受“123456789123456789”时,debug后的edit显示是正常的!但按F5执行的执行edit结果是 6789,仔细观察在显示6789之前“12345678912345”在edit中闪一下!
不知何故,按常理 F5和CTRL+F5执行的结果应该是相同的?不知疏忽了哪?
望大家帮助,先谢谢了!!
先看看下代码,
void CComm2Dlg::OnOnCommMscomm1() 
{
// TODO: Add your control notification handler code here
VARIANT vResponse;
char *str;
char *str1;
    int k, nEvent, i;
   
    nEvent = m_Com.GetCommEvent();    switch(nEvent)
{
case 2:  //收到大于RTHresshold个字符
k = m_Com.GetInBufferCount(); //接收到的字符数目

if(k > 0)
{
    //把缓冲区中收到的数据读入变量
    vResponse=m_Com.GetInput(); 
    //对数据进行其他处理 
                       str = (char*)(unsigned char*)
                                        vResponse.parray->pvData;
}    
// 接收到字符,MSComm控件发送事件
i = 0;
str1 = str;
while (i < k)
{
    i++;
    str1++;
}
*str1 = '\0';

m_receive = (const char *)str;//?????????
//清除字符串中的不必要字符
break;
case 3:  //CTS线状态发生了变化
break;
case 4:  //DSR线状态发生了变化
break;
case 5:  //CD线状态发生了变化
break;
case 6:  //Ring Indicator发生变化
break;
    }     UpdateData(false);
}