c++builder xe10.3 fmx IdTCPClient 接收问题。
我在线程里用IdTCPClient接收图像数据,为了能随时中止接收,用了ReadBytes函数,但是遇到下面的问题,请看代码。
char Buffer[500];
int nBytes;
DynamicArray<Byte> tmp;
tmp.set_length(500);
IdTCPClient1->IOHandler->CheckForDataOnSource(50);//等待50ms
nBytes=IdTCPClient1->IOHandler->InputBuffer->Size;
if(nBytes==0) return false;
IdTCPClient1->IOHandler->ReadBytes(tmp,nBytes); //读数据
BytesToRaw(tmp,Buffer,nBytes);
Buffer[nBytes]=0;
上面的代码,这行有问题,tmp.set_length(500); 帮助里说DynamicArray<Byte>必须要设置字节长度,但设置了后 IdTCPClient1->IOHandler->ReadBytes(tmp,nBytes); 就收不到数据,不进行设置倒是能工作,但是整段代码多运行几次后,在有的机器上会报错,Access violation at address,不知有知道怎么解决吗?