CopyFile wäre eh falsch, denn dieses will einen PChar.
CopyFileW wäre für PWideChar.
Mit PWideChar(s) kann man einen PWideChar erstellen, welcher auf einen WideString zeigt. (einfach direkt beim Aufruf der Funktion casten)
PS: PChar, PAnsiChar und PWideChar sind
nur Zeiger, welcher auf Speicherbereiche zeigen ... darum auch P ie Pointer.
Wenn deine Funktion also PWideChar zurücliefern soll, dann darfst du den Speicher also nicht freigeben (nicht an dieser Stelle, sondern erst später)
Warum um Himmels Willen prädige ich ständig umsonst, daß man Typen nicht vermischen soll?
AnsiString, PAnsiChar, AnsiChar und AnsiAPI (ala CopyFile
A)
WideString/UnicodeString, PWideChar, WideChar und UnicodeAPI (ala CopyFile
W)
ODER
String, PChar, Char und dynamischer
API (ala CopyFile), welches sich an den jeweiligen Compiler anpaßt, bzw. welches an den Compiler angepaßt ist.