Als ich vor ein paar Jahren Synapse Android und iOS tauglich machen wollte, habe ich auch Rotz und Wasser geschwitzt. Da ist an allen Ecken und Enden mit Ansistring hantiert wurden und TMarshal.AsAnsi bzw. MarshaledAString schied für aus.
Vielleicht hilft dir ja meine damals verwendete Lösung:
https://github.com/TetrisSQC/Synapse...e/synabyte.pas
Dabei fällt mir auf, dass ich teilweise noch "fehlerhafte" Fragmente wie:
Code:
Stream.Write(MarshaledAString(TMarshal.AsAnsi(Value))^, Length(Value));
{$ELSE}
Stream.Write(PAnsiChar(Value)^, Length(Value));
drin habe. Das sollte ich mal bei Gelegenheit noch anpassen.
Christian