PChar hört bei einem Nullbyte auf. Wenn du also einen String kodierst und ein Nullbyte drinne vorkommt, dann vergiss es mit PChar.
Delphi-Quellcode:
Var
s : String;
lSize: Integer;
lBuffer: TStream;
Begin
lBuffer := TMemoryStream.Create;
Try
s := Trim(xyz.Wert);
lSize := Length(s);
lBuffer.Write(lSize, SizeOf(lSize));
lBuffer.Write(s[1], lSize);
Finally
lBuffer.Free;
End;
End;
/EDIT: Fehler beseitigt. Mensch ist das peinlich - noch so dumme Fehler...
Anmerkung: Das Trim bei einem verschlüsselten String, der wahrscheinlich mehr binäre Daten enthält als lesbaren Text, war für mich auch schon unverständlich - aber wenn der "Kunde" es so wünscht...