Nsis FileFunc.nsh中的${GetDrives}是否清除从回调中创建的堆栈值?
为什么当Nsis FileFunc.nsh中的${GetDrives}是否清除从回调中创建的堆栈值?,nsis,Nsis,为什么当${GetDrives}调用stack\u test函数时,堆栈不保留“Hello”,但当使用调用stack\u test时,堆栈上有“Hello” 我希望看到: $0 = Hello $0 = Hello $0 = Goodbye $0 = Hello 但我看到的是: $0 = Hello $0 = Hello $0 = Goodbye $0 = Hello 下面是我正在使用的测试用例: !include FileFunc.nsh Name stack_test OutFil
${GetDrives}
调用stack\u test
函数时,堆栈不保留“Hello”,但当使用调用stack\u test
时,堆栈上有“Hello”
我希望看到:
$0 = Hello
$0 = Hello
$0 = Goodbye
$0 = Hello
但我看到的是:
$0 = Hello
$0 = Hello
$0 = Goodbye
$0 = Hello
下面是我正在使用的测试用例:
!include FileFunc.nsh
Name stack_test
OutFile stack_test.exe
ShowInstDetails show
Page instfiles
Function stack_test
Push "Hello"
FunctionEnd
Section section1
Push "Goodbye"
${GetDrives} "HDD" stack_test
Pop $0
DetailPrint "$$0 = $0"
Push "Goodbye"
Call stack_test
Pop $0
DetailPrint "$$0 = $0"
SectionEnd
GetDrive需要回调函数将某些内容推送到堆栈中,并在回调返回后弹出。如果按下“StopGetDrives”,则驱动器枚举将中止,否则,如果有更多驱动器,它将继续 如果堆栈更改位于这样的回调函数中,则不应期望它们继续存在,在这种情况下,推送的数量取决于最终用户有多少驱动器