Невозможно ли получить доступ к данным в памяти буфера TidBytes с приведением типов? Скажем, у меня есть:Delphi 2007, Indy 10. Почему я не могу выбрать тип буфера TidBytes?
type
TMyRecord = packed record
Field1 : integer ;
Field2 : packed array [0..1023] of byte ;
end ;
var
Buffer : TIdBytes ;
MyRecord : TMyRecord ;
begin
IdTCPClient1.IOHandler.ReadBytes (Buffer, SizeOf (TMyRecord), false) ;
with TMyRecord (Buffer) do // compiler snags with "invalid typecast"
...
ОК, так что я могу использовать:
BytesToRaw (Buffer, MyRecord, SizeOf (TMyRecord)) ;
, но не существует никакого способа доступа к данным непосредственно без накладных расходов на копирование его?
Thanks Remy. Я пробовал все комбинации, которые я мог бы использовать, используя '^', 'addr' и' TMyRecord', я не думал, чтобы попытаться определить тип указателя. Кстати, если первое слово вашего ответа будет * Да *, а не * Нет *? – rossmcm
Вы спрашивали, можно ли получить доступ к данным без приведения типов, а этот ответ - * Нет *. Но я повторил ответ. –