Seltsam, denn dann sollte das Ergebnis das gleiche sein wie am Anfang.
Es wurde ja nicht veraten, wie diese Funktion deklariert ist, aber wenn sie mit PChar deklariert wurde, dann ist dieses falsch.
Array of AnsiChar
oder
Array of Byte
Wenn dieses aber eh nur als IN-Parameter genutzt wird, dann könnte man da auch direkt einen AnsiString und ab D2009 den RawByteString oder TBytes, bzw. TByteDynArray dort in der Deklaration verwenden.
Oder man nimmt dort einfach nur einen Pointer und kann so alles übergeben.