Eigentlich ist es mir egal, ob PChar oder String, Hauptsache es ist alles unicodefähig. Und das ist es doch, oder?
Da musst du bei Lazarus/FreePascal aufpassen. Dadurch das String = AnsiString geblieben ist kommt es sehr leicht vor das man die Nicht-Unicodefähigen Funktionen verwendet an stellen bei dem man die *native bzw. *utf8-Funktion hätte verwenden sollen.
Windows Vista - Eine neue Erfahrung in Fehlern.