我有一个运行外部程序的 NSIS 脚本,该程序返回 C++ 类型 HRESULT(无符号 int32),并且 NSIS 使用此值作为有符号 int32 运行。而且我需要花时间正确转换价值。
有没有简单的方法在 NSIS 脚本中自动执行此操作?
更新:解决方案是使用这样的 NSIS 命令转换值 IntFmt $0 "0x%X" $0
我有一个运行外部程序的 NSIS 脚本,该程序返回 C++ 类型 HRESULT(无符号 int32),并且 NSIS 使用此值作为有符号 int32 运行。而且我需要花时间正确转换价值。
有没有简单的方法在 NSIS 脚本中自动执行此操作?
更新:解决方案是使用这样的 NSIS 命令转换值 IntFmt $0 "0x%X" $0
NSIS 变量是字符串,但在需要时它们会在内部转换为数字。
您可以使用IntCmpU
($0 U>= $1 etc in LogicLib 语法) 来比较无符号数字并IntFmt
以您喜欢的任何方式格式化数字...
..和 HRESULT 应被视为已签名;<0 表示错误,0=S_OK 和 >0 表示 S_FALSE 和计数。