用了Input.GetElement后,并没有把缓冲区数据完全清除,怎么回事
我通过以下代码读取数据,InputLen=1;MSComm.RThreshold = 1
while (i_pMsComm->InBufferCount>0)
{
i_data[num++]=(byte)i_pMsComm->Input.GetElement(0);
}
40KB大小的数据,当num=35000左右时,跳出了循环,说明缓冲区没数据了啊。等再一次触发Oncomm事件,并进入时,却马上出现错误。说variant array index out of bound.
我都读了35KB左右的数据了,缓冲区有30000,为什么还会出现这个问题呢?
难道是读取过程中,并没有把已经读取数据清除,不可能啊,INPUT会自动清除啊,不然也不会跳出循环啊
请高手指点一下