【问题标题】:A program caused the program to stop working correctly一个程序导致程序停止正常工作
【发布时间】:2014-11-12 20:54:10
【问题描述】:

我使用 National Instruments LabWindows/CVI 开发了一个软件,并将 .exe 安装在一台具有 4GB RAM 的 Windows 7 32 位 PC 中。 当我运行我的软件时,有时会出现以下错误。

“某个程序导致程序停止正常工作。Windows 将关闭该程序并通知您是否有可用的解决方案”

这是非常随机的,有时这个错误永远不会出现。

谁能帮我理解这个问题。我已经多次查看我的软件代码,并且我确信我在软件中没有做任何导致此错误出现的错误。

这是否与 Windows 有关,我该如何解决?非常感谢您的帮助。

谢谢 苏吉思·拉詹

【问题讨论】:

  • 您的软件似乎有错误。测试它并在调试器中运行它。或者激活 DrWatson 并查看 DrWatson 输出。
  • 如果我的软件有错误,我应该会在运行软件的同时看到这个问题。我的软件运行了 3 天没有任何问题,今天突然我遇到了这个问题。它非常随机。你的想法?
  • 并非所有错误都可以始终如一地重现。
  • @SujithRajan 欢迎来到软件开发和难以发现且不易重现的错误的世界。
  • 可能值得用最新版本的 LabWindows/CVI(当前是 CVI2015)重新编译您的代码,因为错误检查要好得多:您可能会收到警告。同时通过 Valgrind 运行你的代码。

标签: windows-7 windowserror labwindows


【解决方案1】:

类似的问题我也遇到过好几次了。

即使使用简单的程序(例如用于从用户获取输入并在处理后在屏幕上显示一些数据的控制台应用程序)也可能发生这种情况。

通常,这表明您的计算机无法为该程序提供足够的资源,或者您的代码中存在错误。

可能是随机的,原因如下:

  1. 处理器可能已经忙于几个要求很高的任务,因此您的程序需要关闭。在其他时候,当它运行良好时,资源可能可用。

  2. 您的程序可能存在某些逻辑错误,该错误仅在满足某些条件时才会在运行时出现。 (例如错误的条件语句)

  3. 您的程序可能存在无限循环。

  4. Windows 怀疑您的文件对系统有害(出于某种原因)。

【讨论】:

    【解决方案2】:

    有一些 youtube 视频告诉你去设置数据执行保护来解决。这是一条红鲱鱼。它也可能有害,尤其是在您运行旧的 dos 应用程序时(因为出于某种原因您必须这样做)。

    如果程序抛出任何类型的未处理异常,您将收到此错误消息。

    如果您使用此代码段启动它...

     Dim psi As New ProcessStartInfo(pathToTarget)
    
     Dim p As Process = Process.Start(psi)
     Dim bIfinished As Boolean = p.WaitForExit(itimeout)
     If bIfinished = False Then
                p.Kill()
     End If
     iretVal = p.ExitCode
    

    pathToTarget 是目标 exe/bat (TARGET) 文件的完整路径

    timeout 是一个表示毫秒的整数。 2 分钟将是 2*60*1000

    如果程序自行结束,

    bfinished 将为真。注意 - 这不是返回码。如果未能在(本例中为 2 分钟)内完成,则 bFinished 将为 false。

    可以检查

    p.ExitCode 以查看 TARGET 返回的内容。通常,0 表示成功,其他任何内容都是错误代码。

    这是OP提到的消息框,(autoAging恰好是我用来演示的exe)。它还显示“XYZ 已停止工作”。 Google 需要知道这一点!

    请注意,代码将继续在您的应用中运行,因此您可以根据需要进行清理。点击或不点击“关闭程序”对HOST没有影响,我已经知道了。

    如果您拥有 TARGET 的代码,请确保您处理所有错误并返回适当的代码。这样您的呼叫应用程序 (HOST) 就可以知道如何做出反应。 你也避免了这个消息框。

    如果您不拥有 TARGET 的代码,您只需尽力而为。如果有一些输出您可以轻松检查,请执行此操作。否则我会假设失败并继续这个假设。
    此消息框确实会消耗资源。虽然这不是一个大问题,但它们中的足够多会使你的盒子内存不足。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多