procedure TForm1.UDPUDPRead(AThread: TIdUDPListenerThread;
AData: array of Byte; ABinding: TIdSocketHandle);
var
buffer : TBytes;
begin
SetLength(buffer, Length(AData));
buffer := @AData[0];
end;
此代码将导致访问冲突。
在Delphi 中,从字节的数组转换为TBytes的正确方法是什么?
发布于 2013-10-28 09:48:40
你需要复制缓冲区。
Count := Length(AData);
SetLength(buffer, Count);
if Count <> 0 then
Move(AData[0], buffer[0], Length(AData));
我觉得印第的这部分被恩巴卡德罗搞砸了。注意数组值的可疑传递。如果我还记得的话,回购版印第的版本会更好。
https://stackoverflow.com/questions/19641318
复制相似问题