I have been trying to write a function that takes two pointers (an input and an output) and writes the bytes from the input into the output in reverse order. So far I have
procedure ReverseBytes(Source, Dest: Pointer; Size: Integer);
var
Index: Integer;
begin
for Index := 0 to Size - 1 do
Move(Pointer(LongInt(Source) + Index)^,
Pointer(LongInt(Dest) + (Size - Index - 1))^ , 1);
end;
procedure TForm2.Button2Click(Sender: TObject);
var
s: AnsiString;
P: Pointer;
begin
s := #0'testreverse';
GetMem(P, Length(s));
ReverseBytes(Pointer(s), P, Length(s));
ShowMessage(PAnsiChar(P)); // esrevertset
FreeMem(P);
end;