Die Compiler-Magic-Funktion "PChar" macht im Prinzip Folgendes:
Delphi-Quellcode:
function StringToPChar(const S: String): PChar;
const
Leer: String = #0#0;
begin
if S <> '' then
Result := Pointer(S) // Result := @S[1]
else
Result := @Leer[1];
end;
und schon wird klar, warum der "Cast" nicht zwischen
Ansi und
Unicode umwandelt.