Zitat von
bigg:
Mit Ausnahme
Ascii-Zeichen: #0 definiert das Ende eines Delphi-Strings daher sollte man
D-Strings nach Pchar() konvertieren.
FALSCH!
ein String in Delphi hat keine Ende markierung. Ein String wird bei Delphi intern als Pointer gehandhabt. So wird auf ein "Array of Char" gezeigt und die Länge ist im 0ten Byte festgehalten wenn ich nicht irre, Strings fangen nicht umsonst mit #0 an. Du kannst selbst probieren einen String zu erzeugen wo mittendrin #0 vorkommt und dann mit "length(String)" die länge ermitteln und dann wirst du sehen das der String nicht bei #0 aufhört. Wenn es um PChar's geht hast du recht, dort wird das Ende durch #0 gekennzeichnet da keine Längeninformation gespeichert wird (PChar's fangen deshalb auch bei Index 0 an)