我试图用URLEncode编码NSIS中的字符串。我正在使用名为URLEncode的NSIS插件。问题是我尝试编码2个变量,但第一个编码的var在我编码第二个变量后丢失了值。
Push "${AFF_NAME}"
Call URLEncode
Pop $3
;at this point the messagebox show the result good.
MessageBox MB_OK $3
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "ProductName"
Push $0
Call URLEncode
Pop $0
;now after second var encoded the result of first var $3 lost the value
MessageBox MB_OK $3
请帮助我使用NSIS非常新,我不知道它有多好。我搜索信息但没有成功。
非常感谢!
答案 0 :(得分:0)
我不知道URLEncode插件,但在NSIS wiki上有一个名为URLEncode的辅助函数,它无法保留寄存器。
您可以通过修改函数的开头和结尾来修复它,使其如下所示:
; Start
Function URLEncode
System::Store S ; Save registers
Pop $0 ;param
...
Done:
Push $9
System::Store L ; Restore registers
FunctionEnd
; End