外部プログラムを実行するNSISスクリプトがあり、このプログラムはC ++タイプHRESULT(unsigned int32)を返し、NSISはこの値をsignedint32として動作します。そして、値を正しく変換するために時間を費やす必要があります。
NSISスクリプトでこれを自動的に行う簡単な方法はありますか?
更新:解決策は、このIntFmt $ 0 "0x%X"$0のようなNSISコマンドで値を変換することです。
外部プログラムを実行するNSISスクリプトがあり、このプログラムはC ++タイプHRESULT(unsigned int32)を返し、NSISはこの値をsignedint32として動作します。そして、値を正しく変換するために時間を費やす必要があります。
NSISスクリプトでこれを自動的に行う簡単な方法はありますか?
更新:解決策は、このIntFmt $ 0 "0x%X"$0のようなNSISコマンドで値を変換することです。
NSIS変数は文字列ですが、必要に応じて内部で数値に変換されます。
IntCmpU
(LogicLib構文では$ 0 U> = $ 1など)を使用して、符号なし数値を比較IntFmt
し、任意の方法で数値をフォーマットできます...
..そしてHRESULTは署名されたものとして扱われるべきです。エラーの場合は<0、S_OKの場合は0 = S_OK、S_FALSEとカウントの場合は>0。