I have a function that reads some values from Siemens PLC using libnodave.dll and nodave unit but I cannot figure out the error output. I am on purpose forcing to go in error and what I get from AError := string(daveStrerror(readResult)); is an incomprehensible message:
'桴'#$2065'敤楳敲'#$2064'摡牤獥'#$2073'獩戠祥湯'#$2064'楬業⁴潦'#$2072'桴獩倠䍌'
Maybe 2064/2065/2073/2072 all represent a different error code which I have to handle independently? And why chinese? My machine is set up in Italian language.
 
                        
Clearly the library works with ANSI/ASCII chars. The nodave.pas unit works with
PChar, which isPAnsiCharin Delphi versions up to D2007 andPWideCharabove. You need to adjust the nodave.pas unit to handle that.You might get away with replacing all
PCharwithPAnsiChar, but I haven't inspected it more deeply.