procedure TForm1.UDPUDPRead(AThread: TIdUDPListenerThread;
AData: array of Byte; ABinding: TIdSocketHandle);
var
buffer : TBytes;
begin
SetLength(buffer, Length(AData));
buffer := @AData[0];
end;
此代码导致访问冲突。
在Delphi XE3中从字节数组转换为TBytes的正确方法是什么?
最佳答案
您需要复制缓冲区。
Count := Length(AData);
SetLength(buffer, Count);
if Count <> 0 then
Move(AData[0], buffer[0], Length(AData));
我感觉印巴的这一部分被Embarcadero搞砸了。请注意数组按值的可疑传递。如果我还记得,回购中Indy的版本更好。
关于delphi - Delphi将字节数组转换为TBytes-UDP重定向?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19641318/