我的Zipdll代码有什么问题?

时间:2014-08-19 14:55:44

标签: nsis

#Var directoryexe# ;Declare the variable

###Section directory###
    StrCpy $DIRECTORYEXE "$EXEDIR"
###SectionEnd###

**Section "ZIP" locatezip**

ClearErrors

    ${Locate} "$DIRECTORYEXE" "/L=F /M=something.zip /S=1K" "ExtractZip"

    ; '.zip' file next to .exe with size 1 Kb or more

    IfErrors 0 noerror

    MessageBox MB_OK "ERRROR" IDOK +3

noerror:

MessageBox MB_OK "$$R0=$R0" 

**SectionEnd**

功能ExtractZip

    strcpy "$R0" "$R9"

    ZipDLL::extractall "$R0" "$PROGRAMFILES\Example"

    Pop $0

    MessageBox MB_OK "$$0=$0"

    StrCpy $0 StopLocate

    Push $0

FunctionEnd

如果zip在exedir中,提取它但是当它没有写错误消息时,问题是什么? :S

1 个答案:

答案 0 :(得分:0)

在您的特定情况下,您可以使用ZipDLL :: extractall在找不到.zip时会收到的错误消息。

${Locate}无法知道是否找不到文件是错误的。你必须自己跟踪这个。如果从未调用过回调函数(ExtractZip),则找​​不到该文件...