str = (char*)(unsigned char*)m_input.parray->pvData;  错了吧

解决方案 »

  1.   

    parray是SAFEARRAY               
    操作SAFEARRAY 有一套API,不能这么直接用
      

  2.   

    to whiteclouds:
    我输入的字符是大于5个的,这个肯定没问题。
    to DeadWolf:
    能详细说下parray的用法么?谢谢!
      

  3.   

    真接 str =  m_Comm.GetInput();
      

  4.   

    erdgzw(编译通过那一刻感觉真好)的这个用法我以前试过好像行的。
    我记得以前第一次接触的时候用的是龚建伟提供的代码,当时感觉好繁啊,直接看不懂。现在看还行。建议你用CSerialPort类,比MSComm灵活多了,我早就不用MSComm了。而且它定义收到一个字符触发时也不准,感觉就很难做到。如果只是简单调用或者初学也倒无所谓,但是如果想精确控制还是用CSerialPort这个类比较好。