2012-07-19 190 views
1

我有一个运行外部程序的NSIS脚本,该程序返回C++类型HRESULT(无符号int32),NSIS以带符号int32的值运行。我需要花时间正确地转换值。NSIS将int转换为十六进制字符串

是否有简单的方法在NSIS脚本中自动执行此操作?

更新:解决办法是值转换与NSIS命令这样 IntFmt $ 0“为0x%X” $ 0

+0

什么是重新计算返回值的硬编码?例如。如果你的程序返回-1来期望0xffffffff。另见http://en.wikipedia.org/wiki/Two%27s_complement – rekire 2012-07-19 22:30:58

回答

4

NSIS变量是字符串,但在必要时会被内部转换成数字。

您可以使用IntCmpU(在LogicLib语法$ 0 U 1> = $等),以无符号数和IntFmt比较格式化一个数字,你喜欢的任何方式......

..和HRESULT应该被视为签署; < 0代表错误,0 = S_OK,> 0代表S_FALSE并计数。

+0

IntFmt是我想要的 – 2012-07-20 00:24:22

相关问题