byte pChar[3];
3位数组没有pchar[3]这个单元,只有0~2,你修改一下看看。
写单片机程序最不能出这种错误,一不小心不知道跑飞到哪里了

解决方案 »

  1.   

    pChar[3]是定义字符串结束符用的
      

  2.   

    那你应该定义byte pchar[4];
      

  3.   

    COleVariant vt = COleVariant((LPCTSTR)pChar);
    写法错误
    pChar[3]实际在vt内;
    这叫负负得正
      

  4.   

    定义pChar[4],我早就试过了。
    还有,my_love,pChar[3]本来就是在vt内,不仅仅pChar[3],pChar[4],..等都在里面,不过只会读取前3位
      

  5.   

    可能是单片机程序飞了吧 ,你PC 2 PC 试试看。用串口精灵接。
      

  6.   

    Debug和Release的行为不同,就本例子而言,
    如果没有编译设定对齐,默认为8个字节,pChar的后5个字节将是可利用的预留空间,
    两个版本的处理方法不一样:
    Debug:  它把使用空间未定义的初值设为0xcc;
    Release:它把使用空间未定义的初值设为0x00;
    pChar[3] = 0XCC;是手动的设置其值第四个字节,当然都可以成功。
      

  7.   

    关键是如果字符串结束符是'\0',就不灵,而一定要是0XCC
      

  8.   

    高手:可以搞定这个!!!
    http://www.csdn.net/Expert/topic/470/470143.shtm 
      

  9.   

    caigzhi, 这个我当然知道,否则我也不会改成0XCC了,就是为什么会这样,难道和单片机读取数据有关吗?
      

  10.   

    不会,我也做过和DSP通信的程序,通过交叉串口,通信的数据是至关重要的,
    我想问题在pc发送前的数据
      

  11.   

    VC就是这样,还有更奇怪的呢!我有时也时死活想不通,为什么,自己当初选择了VC呢?你看人家DELPHI不是人气很旺吗?