如何用Delphi处理libnodave错误消息?

问题描述 投票:0回答:1

我有一个函数可以使用

libnodave.dll
和 nodave 单元从西门子 PLC 读取一些值,但我无法弄清楚错误输出。我故意强迫自己犯错误,而我从
AError := string(daveStrerror(readResult));
得到的是一条难以理解的消息:

'桴'#$2065'敤楳敲'#$2064'摡牤獥'#$2073'獩戠祥湯'#$2064'楬業⁴潦'#$2072'桴獩倠䍌'

也许 2064/2065/2073/2072 都代表不同的错误代码,我必须独立处理?为什么是中文?我的机器设置为意大利语。

delphi pascal plc siemens libnodave
1个回答
0
投票

显然该库适用于 ANSI/ASCII 字符。 nodave.pas 单元与

PChar
一起使用,在 D2007 及以上的 Delphi 版本中为
PAnsiChar
和以上的
PWideChar
。您需要调整 nodave.pas 单元来处理该问题。

您可能可以将所有

PChar
替换为
PAnsiChar
,但我还没有更深入地检查它。

© www.soinside.com 2019 - 2024. All rights reserved.