1

Windows が 64/32 ビットかどうかのチェックなど、インストーラーの初期化時にいくつかのチェックを行うインストーラーを作成しようとしています。組み込みインストーラーが EXEDIR にある場合。これがコードの一部です。

${If} ${RunningX32}
    MessageBox MB_OK "running on x32"
  ${AndIf} ${FileExists} "$EXEDIR\VDF2012-17.0.22.8.Client.exe" #32 bit version
    !insertmacro UnselectSection ${SEC02}
     SectionSetText ${SEC02} ""
    !insertmacro SelectSection ${SEC03}
  ${Else}
    !insertmacro UnselectSection ${SEC03}
      SectionSetText ${SEC03} ""
      MessageBox MB_OKCANCEL "${PRODUCT_NAME} misses the Visual DataFlex setup. \
                                      Do you wan't to download it?" IDOK true IDCANCEL false
        true:
          StrCpy $2 "$EXEDIR\VDF2012-17.0.22.8.Client.exe"
          inetc::get /caption "Downloading Visual DataFlex" /popup "" "ftp://ftp.dataaccess.com/pub/products/vdf/Software/VDF2012-17.0.22.8.Client.exe" "$EXEDIR\VDF2012-17.0.22.8.Client.exe" $2
          Pop $R0 ;Get the return value
          StrCmp $R0 "success" +3
          ExecWait $2
          Delete $2
        false:
    ${EndIf}

しかし、最初の行で、コードはすでにこのエラーを出しており、それを修正するためにあらゆることを試みました..

!insertmacro: _If
!insertmacro: macro "_If" requires 4 parameter (s), passed 2!
Error in script "Path" Aborting blabla...

私は自分自身を明確にしたことを願っています。

4

1 に答える 1

2

RunningX32 という名前のマクロはありません。RunningX64 マクロを使用する必要があります。

!include x64.nsh

...

${IfNot} ${RunningX64}
  ...
于 2012-09-18T12:26:55.930 に答える