我在学习串口通信时,使用了以下程序:
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型数组
for(k=0;k<len;k++)              //将数组转换为Cstring型变量
……
但是,其中len的长度为255,若我接收的数据大于255,那么会自动分开,这样数据就打乱了,有没有办法使len的长度增大啊?我是初学者,请指教。谢谢!

解决方案 »

  1.   

    没看懂,你的len不是收到数据的长度吗?数据多了就自己变大的
      

  2.   

    用MSCOMM的话,好像是这么接受的,不然你就用API实现吧
      

  3.   

    也就是说你要接收的总长度超过了255,你可以建立一个缓存区:BYTE buff[BUFFLEN],
    BUFFLEN设定为你最大接收长度。
    然后每次收到一定的长度,将该数据拷贝到你的缓存中。
    记录已经拷贝的长度iCurLen,下次再收到数据,拷贝到后续的位置,到达你渴望的长度后处理数据,然后
    重置iCueLen。