Hi,
ich gehe mal von {$H+} aus.
Delphi-Quellcode:
var
X: PChar;
S: String;
S := X;
Du musst gar nichts machen, die CompilerMagic übernimmt in diese Richtung alles.
StrPas ist nicht dasselbe wie String(). StrPas wandelt einen PChar in eine ShortString (Pascal-String) um. String() - siehe oben. Explizite Typumwandlung - da es auch implizit geht, passiert letztendlich das gleiche wie ohne den Typecast.
Rückgabe eines PChar von einer
DLL am besten über
functionGibStringZurück(Rueckgabe: PChar; Laenge: Cardinal): Boolean; stdcall;
Das Speicherreservieren/Freigeben dem Aufrufer überlassen. Passt der String nicht, false zurückgeben, sonst true und in Rueckgabe kopieren (z. B. mit StrLCopy).
Mfg
FAlter