Das liegt an der unterschiedlichen Definition von 'Char' in den Delphi-Versionen. Früher war das ein Byte, heute sind das zwei.
Du müsstest entweder komplett auf WideChar umschwenken und die entsprechenden Windows-
API Funktionen nutzen, oder komplett auf AnsiChar.