首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序导致程序停止正常工作。

程序导致程序停止正常工作。
EN

Stack Overflow用户
提问于 2014-09-18 13:24:46
回答 2查看 7.7K关注 0票数 0

我已经开发了一个软件,使用国家仪器LabWindows/CVI,并将.exe安装在Windows732位PC机上,内存为4GB。当我运行我的软件时,有时我会得到以下错误。

程序导致程序停止正常工作。如果有解决方案,Windows将关闭程序并通知您

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

有谁能帮我理解这个问题吗?我已经检查了我的软件代码很多次,我相信我没有做任何错误的软件,导致这个错误出现。

这与windows有关吗?我如何解决这个问题?帮助是非常感谢的。

谢谢苏吉思·拉詹

EN

回答 2

Stack Overflow用户

发布于 2014-09-18 14:04:24

我曾多次遇到类似的问题。

这种情况甚至可能发生在一些简单的程序中,比如控制台应用程序,用于从用户那里获取输入,并在处理后在屏幕上显示一些数据。

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

由于下列原因,它可能是随机的:

  1. 处理器可能已经忙于一些要求很高的任务,因此您的程序需要关闭。在其他时候,当它运行良好时,资源可能是可用的。
  2. 您的程序可能有某个逻辑错误,只有在满足某些条件时才会在运行时出现。(例如错误的有条件陈述)
  3. 您的程序可能有一个无限循环。
  4. Windows怀疑您的文件对系统有害(出于某种原因)。
票数 0
EN

Stack Overflow用户

发布于 2016-10-31 14:43:33

有youtube视频告诉你去设置数据执行保护来解决。这是一条红鲱鱼。这也可能是有害的,特别是当你运行旧的dos应用程序时(因为你出于某种原因不得不这么做)。

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

如果你用这段代码启动它..。

代码语言:javascript
复制
 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 (目标)文件的完整路径

超时值是表示毫秒的整数。2分钟是2*60*1000

如果程序自行结束,则完成的将为真。注意-这不是返回代码。如果它未能在(本例中为2分钟)内完成,bFinished将为false。

可以检查p.ExitCode以查看目标返回了什么。通常,0是成功的,其他的都是错误代码。

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

请注意,代码将继续运行在您的应用程序,以便您可以做清理,如果您愿意。点击或不点击“关闭程序”对主机没有影响,我已经能够告诉你。

如果您拥有目标的代码,请确保处理所有错误并返回适当的代码。这样,您的调用应用程序(主机)可以知道如何反应。您还可以避免使用这个msgbox。

如果你没有目标的代码,你只需要尽你所能。如果有一些输出,您可以随时检查,这样做。否则,我会假设失败,然后继续这个假设。

此消息框确实使用资源。虽然这不是一个大的问题,但足够的,他们会运行你的盒子内存不足。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25913969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档