Ich habe damals auch immer den konkreten Typ verwendet (nachdem ich es gelernt hatte), weil das andere nun einmal ein Metatyp war und ist. Das ist ja nicht neu, sondern war damals auch schon so.
Sich darauf zu verlassen, dass der immer auf
Ansi zeigt, war da auch schon falsch.
Ob PChar später wirklich
Unicode wird, war natürlich nicht klar (war aber zu vermuten aus dem Delphiquelltext heraus), aber klar war, dass PAnsiChar und PWideChar bereits exakt definiert waren und heute ja weiter sind...
Und wenn man mal in den Quelltext von Delphi 4 (!) schaut, da gab es die Unterscheidung ja auch schon...
Delphi-Quellcode:
function GetCommandLineA; external kernel32 name 'GetCommandLineA';
function GetCommandLineW; external kernel32 name 'GetCommandLineW';
function GetCommandLine; external kernel32 name 'GetCommandLineA';
Wenn man das dann damals aus Unwissenheit anders gemacht hat, ist das ja in Ordnung. Aber zu sagen, dass es korrekt war, finde ich nicht richtig. Unwissenheit schützt vor Strafe bzw. hier Problemen nicht.
// EDIT:
Der Quellcode ist entstanden, als man bei Delphi noch nicht mal wusste, was
Unicode überhaupt ist.
Das ist schlicht falsch. Da brauchst du nur in die alten Delphiversionen schauen. Nur weil der Stringtyp in Delphi nicht
Unicode war, heißt das noch lange nicht, dass es kein
Unicode gab. PWideChar konntest du da problemlos verwenden um die Unicodefunktionen aufzurufen.