Программа заставила программу перестать работать правильно
Я разработал программное обеспечение с использованием National Instruments LabWindows/CVI и установил.exe на 32-битный ПК с Windows 7 с 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)
Тайм-аут - это целое число, представляющее миллисекунды. 2 минуты будут 2*60*1000
Значение bfinished будет истинным, если программа закончилась сама собой. ПРИМЕЧАНИЕ - это не код возврата. Если не удалось завершить (в этом примере 2 минуты), bFinished будет false.
p.ExitCode может быть проверен, чтобы увидеть, что TARGET вернул. Обычно 0 - это успех, а все остальное - код ошибки.
Это окно сообщения, упомянутое OP, (autoAging - это исполняемый файл, который я использовал для демонстрации этого). Там также написано, что "XYZ перестал работать". Google должен знать это!
Обратите внимание, что код будет продолжать работать в вашем приложении, так что вы можете очистить, если хотите. Нажатие или не нажатие кнопки "Закрыть программу" не влияет на HOST, что я смог сказать.
Если вы владеете кодом для TARGET, убедитесь, что вы обработали все ошибки и вернули соответствующий код. Таким образом, ваше вызывающее приложение (HOST) может знать, как реагировать. Вы также избегаете этого сообщения.
Если вы не владеете кодом для TARGET, вам просто нужно сделать все возможное. Если есть выход, который вы можете легко проверить, сделайте это. В противном случае я бы допустил неудачу и продолжил бы это предположение.
Это окно сообщения действительно потребляет ресурсы. Хотя это и не большая проблема, их будет достаточно для запуска вашей памяти.
Я сталкивался с подобными проблемами несколько раз.
Это может произойти даже с простыми программами, такими как консольное приложение, используемое для получения ввода от пользователя и отображения некоторых данных на экране после их обработки.
Обычно это свидетельствует о том, что ваш компьютер не может предоставить достаточно ресурсов для этой программы или что в вашем коде есть ошибка.
Это может быть случайным по следующим причинам:
Возможно, процессор уже занят несколькими сложными задачами, и из-за этого ваша программа должна быть закрыта. В других случаях, когда это работает хорошо, ресурсы могут быть доступны.
Ваша программа может иметь определенную логическую ошибку, которая появляется во время выполнения только при выполнении определенных условий. (например, ошибочное условное утверждение)
Ваша программа может иметь бесконечный цикл.
Windows подозревает, что ваш файл вреден для системы (по некоторым причинам).