0

National Instruments LabWindows/CVI を使用してソフトウェアを開発し、4GB RAM を搭載した Windows 7 32 ビット PC に .exe をインストールしました。ソフトウェアを実行すると、次のエラーが表示されることがあります。

「プログラムが原因でプログラムが正常に動作しなくなりました。Windows はプログラムを終了し、解決策がある場合は通知します」

これは非常にランダムで、このエラーが発生しないこともあります。

誰でもこの問題を理解するのを手伝ってくれませんか。私は自分のソフトウェア コードを何度も見直しましたが、このエラーが発生する原因となるソフトウェアで何か間違ったことをしていないことを確信しています。

これはウィンドウに関連するものですか?どうすれば解決できますか? 助けていただければ幸いです。

ありがとう

4

2 に答える 2

0

同様の問題に何度か遭遇しました。

これは、ユーザーからの入力を取得し、処理後に画面にデータを表示するために使用されるコンソール アプリケーションのような単純なプログラムでも発生する可能性があります。

通常、これは、コンピュータがこのプログラムに十分なリソースを提供できないか、コードにバグがあることを示しています。

次の理由により、ランダムである可能性があります。

  1. プロセッサは、いくつかの要求の厳しいタスクで既にビジー状態である可能性があり、これによりプログラムを閉じる必要があります。また、うまく機能している場合は、リソースを利用できる場合があります。

  2. プログラムには、特定の条件が満たされた場合にのみ実行時に表示される特定の論理エラーが含まれている場合があります。(誤った条件文など)

  3. プログラムに無限ループがある可能性があります。

  4. Windows は、あなたのファイルがシステムに有害であると疑っています (何らかの理由で)。

于 2014-09-18T14:04:24.483 に答える
0

解決するためにDATA EXECUTION PROTECTIONを設定するように指示する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は true になります。注 - これはリターン コードではありません。(この例では 2 分) で終了しなかった場合、bFinished は false になります。

p.ExitCodeをチェックして、TARGET が何を返したかを確認できます。通常、0 は成功を意味し、それ以外はエラー コードです。

これは、OP が言及したメッセージ ボックスです (autoAging は、これを示すために使用した exe です)。また、「XYZ は動作を停止しました」とも表示されます。グーグルはそれを知る必要があります!

エラーのサンプル画像

コードはアプリで引き続き実行されるため、必要に応じてクリーンアップを行うことができます。「プログラムを閉じる」をクリックしてもクリックしなくても、私が知る限り、HOST には何の影響もありません。

TARGET のコードを所有している場合は、すべてのエラーを処理し、適切なコードを返すようにしてください。そうすれば、呼び出し元のアプリ (HOST) が反応する方法を知ることができます。このメッセージボックスも避けます。

TARGET のコードを所有していない場合は、最善を尽くす必要があります。すぐに確認できる出力がある場合は、それを実行します。それ以外の場合は、失敗を想定して、その想定に基づいて続行します。
このメッセージ ボックスはリソースを消費します。大きな問題ではありませんが、それらが多すぎると、ボックスのメモリが不足します。

于 2016-10-31T14:43:33.750 に答える