du musst dir immer bewusst machen das ein PChar nur ein Pointer-Typ ist.
Folgendes solltest du zum Beispiel daher nie machen:
Delphi-Quellcode:
function Irgendwas(): PChar;
var
meinString: String;
meinPChar: PChar;
begin
meinString := 'Text';
meinPChar := PChar(meinString);
result := meinPChar;
end;
denn zurück gegeben wird nur ein Pointer (PChar) auf meinString und meinString ist nach verlassen der Funktion nicht mehr gültig. PChar verhält sich also wie so ziemlich jeder andere Pointer und zeigt auf das erste Zeichen der Zeichenkette.