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