无法使用Pop获取控制变量

问题描述 投票:0回答:2

几个示例展示了如何将创建的控件存储在变量中(例如,查看官方文档,或这个答案)。

但是在我的脚本中,NSIS 编译器立即失败。这是我的脚本的一部分:

nsDialogs::Create 1018
Pop $Dialog

${If} $Dialog == error
        Abort
${EndIf}

${NSD_CreateLabel} 0 10u 100% 12u "There is a new feature available in this version called Fuse."
${NSD_CreateLabel} 0 22u 100% 12u "It makes your whole Mega Cloud Drive being available directly from Windows Explorer."
${NSD_CreateLabel} 0 34u 100% 12u "In order to use it, you need to install WinFSP. Do you want to install WinFSP?"

${NSD_CreateCheckbox} 30u 70u 100% 12u "Install WinFSP"
Pop $checkbox

;${If} $Checkbox_State == ${BST_CHECKED}
;    ${NSD_Check} $Checkbox
;${EndIf}

Var /GLOBAL installWinFSP
StrCpy $installWinFSP "Y"

nsDialogs::Show

这是我得到的错误:

warning: !warning: LangString "MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS" for language Welsh is missing, using fallback from "C:\Program Files (x86)\NSIS\Contrib\Language files\English.nsh" (macro:LANGFILE_SETSTRING:7)
warning: !warning: LangString "MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER" for language Welsh is missing, using fallback from "C:\Program Files (x86)\NSIS\Contrib\Language files\English.nsh" (macro:LANGFILE_SETSTRING:7)
warning 6000: unknown variable/constant "installWinFSP" detected, ignoring (macro:_==:1)
Usage: Pop $(user_var: output)
Error in script "installer_win.nsi" on line 311 -- aborting creation process

注意:故障出现在

Pop $checkbox
行,
Pop $Dialog
工作正常。

对问题出在哪里有什么想法吗?

nsis
2个回答
0
投票

默认只有

$0
-
$9
$R0
-
$R9
存在,其他变量需要使用
Var

手动声明

0
投票

输出

Usage: Pop $(user_var: output)
假设您传递给函数的变量无效,更好的说法是:它尚未定义。确保在第一次使用变量之前已使用
VAR
关键字声明该变量(根据注释,这就是
Pop $Dialog
有效但
Pop $checkbox
无效的原因)。

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