2014-09-18 5 views
0

저는 National Instruments LabWindows/CVI를 사용하여 소프트웨어를 개발했으며 4GB RAM이 장착 된 Windows 7 32 비트 PC에 .exe를 설치했습니다. 소프트웨어를 실행할 때 가끔 다음과 같은 오류가 발생합니다. 프로그램으로 인해 프로그램이 올바르게 작동하지 않습니다.

는 "A 프로그램이 제대로 작동하지 않을 수있는 프로그램을 일으켰습니다. Windows가 프로그램을 닫고 해결 방법이 있는지 알려줍니다"

이 매우 랜덤 때로는이 오류가 제공되지 않습니다.

누구든지이 문제를 이해할 수 있도록 도와주세요. 여러 번 소프트웨어 코드를 검토 한 결과이 오류의 원인이되는 소프트웨어에 아무런 오류가없는 것으로 확신합니다.

이 항목은 창과 관련이 있으며 어떻게 해결할 수 있습니까? 도움을 많이 주시면 감사하겠습니다. 나는 비슷한 문제가 여러 번 발생했습니다 Sujith 라잔

+0

소프트웨어에 버그가있는 것 같습니다. 그것을 테스트하고 디버거에서 실행하십시오. 또는 DrWatson을 활성화하고 DrWatson 출력을 봅니다. –

+0

소프트웨어에 버그가있는 경우 소프트웨어를 실행하는 것과 동시에 같은 장소에서이 문제가 발생합니다. 소프트웨어가 문제없이 3 일 동안 실행되었고 갑자기 오늘이 문제가 발생했습니다. 매우 무작위. 당신의 생각? –

+0

모든 버그가 일관되게 재현되는 것은 아닙니다. –

답변

0

감사합니다.

사용자가 입력 한 내용을 처리하고 화면에 일부 데이터를 표시하는 데 사용되는 콘솔 응용 프로그램과 같은 간단한 프로그램에서도이 문제가 발생할 수 있습니다.

일반적으로 컴퓨터에서이 프로그램에 충분한 리소스를 제공 할 수 없거나 코드에 버그가 있음을 나타냅니다.

은 다음과 같은 이유로 인해 임의 수 있습니다 :

  1. 프로세서는 이미 몇 가지 까다로운 작업에 사용 중일 수 있습니다 및 프로그램 때문에이 폐쇄 될 필요가있다. 다른 경우에는 제대로 작동하면 리소스를 사용할 수 있습니다.

  2. 프로그램에는 특정 조건이 충족 될 때만 런타임에 나타나는 특정 논리 오류가있을 수 있습니다. (예 : 잘못된 조건문)

  3. 프로그램에 무한 루프가있을 수 있습니다.

  4. Windows는 파일이 (어떤 이유로) 시스템에 유해한 것으로 의심합니다.

0

해결할 데이터 실행 방지 설정을 지정하는 youtube 비디오가 있습니다. 이것은 빨간 청어입니다. 그것도 잠재적으로 해로운, 특히 당신이 오래된 DOS 애플 리케이션을 실행하는 경우 (왜냐하면 당신은 어떤 이유로).

프로그램이 처리되지 않은 예외를 throw하면 모든 종류의 오류 메시지가 표시됩니다.

이 코드 단락 함께 시작하면 ...

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/박쥐 (TARGET)의 전체 경로가 제한 시간는 정수

파일입니다 밀리 초를 나타냅니다.2 분은 2 * 60 * 1000이됩니다.

bfinished은 프로그램이 자체적으로 종료 된 경우 true가됩니다. 참고 - 이것은 반환 코드가 아닙니다. 끝내지 못한 경우 (이 예에서 2 분) bFinished는 거짓입니다.

p.ExitCode은 TARGET이 반환 한 내용을 확인할 수 있습니다. 일반적으로 0은 성공이고 다른 것은 오류 코드입니다.

이것은 OP에서 언급 한 메시지 상자입니다 (autoAging은이 문제를 설명하기 위해 사용한 EXE 형식입니다). 또한 'XYZ가 작동을 멈췄다'고 말합니다. Google은 그것을 알아야합니다! 만약 당신이 좋아하면 당신은 청소 할 수 있도록 그 코드는 앱에서 계속 실행됩니다

sample picture of error

참고. "프로그램 닫기"를 클릭하거나 클릭하지 않으면 내가 말할 수 있었던 호스트에 아무런 영향을 미치지 않습니다.

코드가 TARGET 인 경우 모든 오류를 처리하고 적절한 코드를 반환해야합니다. 그렇게하면 호출하는 앱 (HOST)이 반응하는 방법을 알 수 있습니다. 또한이 msgbox를 피하십시오.

TARGET에 대한 코드를 소유하지 않은 경우 가능한 한 최선을 다해야합니다. 쉽게 확인할 수있는 출력이 있으면 그렇게하십시오. 그렇지 않으면 실패라고 가정하고 그 가정을 계속 진행합니다.
이 메시지 상자는 리소스를 사용합니다. 그것의 큰 문제는 아니지만, 그들 중 충분한 메모리를 상자를 실행합니다.

관련 문제