Ja, Delphi-Strings sind Nullterminiert, als Kompatibilität zum PChar, obwohl sie selber allerdingt ein Längenbyte (Integer) besitzen.
Castet man einen String nach PChar, AnsiString nach PAnsiChar oder UnicodeString/WideString nach PWideChar, greift die Compilermagic, welche die Referenzzählung der Delphi-Strings beachtet und zusätzlich noch den Leer-String besonders behandelt.
Und ab Delphi 2009 mußt du mit
Unicode aufpassen.
PS: Rate mal, warum man im Forenprofil angeben kann, was man nutzt?
In Deinem Fall hast du den AnsiString wohl radikal nach PWideChar gecastet ... das macht man nicht.
Oder du hast dich verpointert und statt den Textdaten einen Zeiger auf die Variable ... das ist auch falsch,
Und da du nicht verrätst, wie dein Code aussieht, wird dir auch keiner helfen können.