Windows 7 程序导致程序停止正常工作

Windows 7 程序导致程序停止正常工作,windows-7,windowserror,labwindows,Windows 7,Windowserror,Labwindows,我使用国家仪器LabWindows/CVI开发了一个软件,并将.exe安装在Windows7 32位PC上,内存为4GB。 当我运行软件时,有时会出现以下错误 程序导致程序停止正常工作。Windows将关闭该程序并通知您是否有可用的解决方案 这是非常随机的,有时这种错误永远不会出现 有人能帮我理解这个问题吗。我已经检查了我的软件代码很多次,我相信我没有做任何错误的软件,导致这个错误出现 这与windows有关吗?如何解决?非常感谢你的帮助 谢谢 苏吉特·拉詹我曾多次遇到类似的问题 即使使用简单的

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

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

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

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

这与windows有关吗?如何解决?非常感谢你的帮助

谢谢
苏吉特·拉詹

我曾多次遇到类似的问题

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

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

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

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

您的程序可能有某种逻辑错误,只有在满足某些条件时才会在运行时出现。例如错误的条件语句

您的程序可能有一个无限循环

Windows怀疑您的文件由于某种原因对系统有害


有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目标文件的完整路径

timeout是表示毫秒的整数。2分钟等于2*60*1000

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

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

这是OP提到的消息框,自动老化恰好是我用来演示的exe。它还表示“XYZ已停止工作”。谷歌需要知道这一点

请注意,代码将继续在您的应用程序中运行,以便您可以根据需要进行清理。点击或不点击关闭程序对主机并没有影响,我已经能够告诉你们

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

如果你没有目标代码,你只需要尽你所能。如果有一些输出,你可以随时检查,这样做。否则,我会假设失败,然后继续这个假设。
此消息框不消耗资源。虽然这不是一个大问题,但足够多的问题会耗尽你的内存

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