ein harter Cast ändert nur den Zeigertyp, aber nicht die enthaltenen Daten.
innerhalb einer Funktion könnte man auch sowas nutzen,
pwchar := PAnsiChar(AnsiString(test));
aber sobald man die Funktion/Prozedur verläßt, benötigt man einen Zwischenspeicher für die
Ansi-Daten, damit diese nicht schon freigegeben sind, wenn sie dann außerhalb verwendet werden sollen.
Delphi-Quellcode:
var // globale TempVariable (aber global ist auch böse und hat Nachteile)
testTemp: AnsiString;
var
test: PWideChar oder WideString;
begin
test := 'Hallo';
...
//TestTemp := AnsiString(test);
TestTemp := test;
Result := PAnsiChar(testTemp);
end;