0

C ++ /CLIアプリケーションの実行中にプロセスとして実行しているネイティブC++アプリケーションがあり、終了コードで奇妙な動作が見られます。プロセスが正しく終了すると、終了コードは0になると思いますが、Process.ExitCodeは-529697949を返します。ただし、C ++アプリケーションをデバッグすると、返される終了コードが実際には0であることがわかります。Process.ExitCodeプロパティがこの値と一致しないのはなぜですか。

4

1 に答える 1

8

プログラムが正しく動作しない場合に行う絶対的に最も重要な仮定は、それが何十万人ものプログラマーによって使用され、5 億台のマシンで実行されるコードのバグであると決して想定しないことです。最初にプログラムの問題であると仮定します。

その知識を武器に、数字をよく見てください。数値が大きくてランダムに見える場合の良い戦略は、常に 16 進数に変換することです。-529697949 = 0xe06d7363. シャザム、マジックナンバー、ググも上手い。これは、Windows 例外コードの値です。e0 は致命的なエラーになります。6d7363 は「msc」と綴る ASCII コードです。

未処理の C++ 例外でプログラムがクラッシュしました。

于 2013-03-14T01:59:30.470 に答える