如何处理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 字符。 nodave.pas 单元与

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

您可能可以将所有

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

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