In den Deklarationen für die
Dll ist bestimmt PChar als Parametertyp definiert, was vor Delphi 2009 PAnsiChar entsprochen hat, unter Delphi 2009 (und höher) aber PWideChar ist.
Einfach mal in der
Unit in der die Funktion definiert ist, PChar durch PAnsiChar ersetzten.
Die Meldung "cannot read C: No such file or directory" kommt daher, da das erste Zeichen "C" ist, gefolgt von einem 0 Byte, da UTF-16. Und nach dem Nullbyte ist für die
Dll-Funktion der String zu Ende.