Visual Studio 2010を使用して、64ビットWindowsシステムに新しいWindowsフォームアプリケーションを作成すると、表示されておらず準備ができていない問題に遭遇する可能性があります。コードがロードイベント処理プログラムのコードで処理されていない場合、プログラムは問題コードラインをスキップし、エラーなしで実行され続けます。これは、予想されるデバッガーの中断の動作や、ブロースされていない情報の異常な表示とは異なります。
根本原因分析
この異常な動作は、64ビットシステムで実行されている32ビットコードと対話するために、WOW64(Windows-on-Windows 64ビット)シミュレーションレイヤーに由来しました。 64ビットウィンドウマネージャーが通知をトリガーすると、応答コード(ロードイベント処理プログラムなど)が32ビット環境で実行されます。この32ビットコードで異常が発生した場合、WOW64レイヤーは異常を飲み込み、デバッガーがそれを検出するのを防ぐことができます。 解決策と変更方法
プラットフォームターゲットをanyCPUとして設定し、選択した「32ビットを好む」:
をキャンセルするプラットフォームターゲットをAnyCPUに設定します。
「最初の選択肢32 -bit」をキャンセルします。CLR異常を選択する「原因」チェックボックスを選択します。 これにより、これにより、ロードイベント処理プログラムの位置に関係なく、CLR異常なラインで必須デバッガーの実行が停止されます。
デバッグ中のWow64異常なキャプチャを無効にする:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
ロードイベント処理手順の使用を回避することを検討してください:通常、ユーザーの設定やウィンドウサイズに依存しない初期化タスクは、コンストラクターで処理する必要があります。
追加の説明: Windows 8以上のバージョンでは、この問題が解決されました。したがって、新しいオペレーティングシステムに更新することもソリューションを提供する場合があります。
以上がVS2010を使用して、64ビットWindows Winformsアプリケーションで例外メッセージが欠けているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。