我有一个函数可以使用
libnodave.dll
和 nodave 单元从西门子 PLC 读取一些值,但我无法弄清楚错误输出。我故意强迫自己犯错误,而我从 AError := string(daveStrerror(readResult));
得到的是一条难以理解的消息:
'桴'#$2065'敤楳敲'#$2064'摡牤獥'#$2073'獩戠祥湯'#$2064'楬業⁴潦'#$2072'桴獩倠䍌'
也许 2064/2065/2073/2072 都代表不同的错误代码,我必须独立处理?为什么是中文?我的机器设置为意大利语。
显然该库适用于 ANSI/ASCII 字符。 nodave.pas 单元与
PChar
一起使用,在 D2007 及以上的 Delphi 版本中为 PAnsiChar
和以上的 PWideChar
。您需要调整 nodave.pas 单元来处理该问题。
您可能可以将所有
PChar
替换为 PAnsiChar
,但我还没有更深入地检查它。