【问题标题】:how to get the exit code of other application in nsis如何在nsis中获取其他应用程序的退出代码
【发布时间】:2012-01-30 10:35:49
【问题描述】:

在我的 .nsi 文件中,我正在调用 ExecWait '"$INSTDIR\application.exe" ' $0 。在 application.exe 中,我返回成功和失败的退出代码。如何在 .nsi 文件中捕获这些退出代码。

【问题讨论】:

    标签: exe nsis exit-code


    【解决方案1】:

    如果执行ExecWait出错,则传入的用户变量的内容是未定义的。

    要简单地检查程序是否正确执行,请检查错误标志。 (顺便说一句,NSIS 预计成功为零,错误为非零)

    ClearErrors
    ExecWait '"$INSTDIR\application.exe"'
    IfErrors 0 noError
    ; Handle error here
    noError:
    

    【讨论】:

      【解决方案2】:

      应用程序的退出代码将存储在作为第二个参数传递给 ExecWait 的变量中,在您的示例中为 $0。

      http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.1.4

      【讨论】:

      • 我将整数 1 作为成功传递,整数 2 作为失败传递,但是当我在 ExecWait 代码之上执行时,我总是得到 0 作为它的值。你能告诉我我应该如何在应用程序中发送返回值(C++ 代码)
      • 我不是 c++ 专家,但我想使用返回函数是指定退出代码的方法
      • 我不需要确切地知道 C++,任何其他编程语言也可以。我从我的应用程序的功能返回错误代码。我在我的 .nsi 文件中调用该应用程序,但没有收到我发送的错误代码。请帮帮我
      • 你能粘贴一段你的 c++ 程序的main() 的摘录吗?基本上,在代码的末尾,如果你放了一个return 42;,那么应该在你给ExecWait的变量中捕获42个值
      猜你喜欢
      • 2017-08-11
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 2012-11-07
      相关资源
      最近更新 更多