Zitat:
WideString(EinPAnsiChar)
Bei derartigen Casts sollte man immer aufpassen.
Wird da nur stumpf der "Pointer"/Typ gecastet, oder war der Compiler so schlau eine Funktion für den Cast den Daten-Inhalts einzubauen.
Ausgehend von "normalen" String-Typen (vorallem die LongStrings und der ShortString), macht das der Compiler immer, aber bei "Pointern" als Quelle nicht immer.
Bei PAnsiChar<>PWideChar kann er es auch garnicht machen und wirft da nur eine Warnung.
Und bei Pointer <->
Ansi/Wide/UnicodeString wird der Typ nur blind gecastet, ohne den Inhalt anzupassen, den der Compiler den Daten-Typ eh nicht kennt.
Nur bei LongStrings (AnsiString, UnicodeString) und WideString zum passenden PChar-Typen braucht der Inhalt nicht konvertiert zu werden.
Tut Delphi aber dennoch, aber nur bezüglich der Leer-Strings, wo auf eine Dummy-Stringkonstante mit dem Inhalt #0#0 umgeleitet wird.