ホームページ >バックエンド開発 >C++ >VS2010は、64ビットWinformsアプリで未処理の例外メッセージを表示しないのはなぜですか?

VS2010は、64ビットWinformsアプリで未処理の例外メッセージを表示しないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-02-01 22:01:09598ブラウズ

vS2010 64 -Bit Winformsアプリケーションは、未処理の異常なメッセージを表示していません:問題

C#および.NETフレームワーク4を使用してVS2010で新しいWindowsフォームアプリケーションを作成する場合、ユーザーは未処理の異常に関する異常な動作に遭遇しました。 Form1_load処理プログラムに特定のコードを追加した後、特定の行の添えられていない異常なメッセージが表示されないことが予想されます。それどころか、コードの実行にはエラーがなく、アプリケーションは実行され続けます。

この特別な動作は、WOW64アナログ層を介して64ビットウィンドウ7と相互作用する方法に起因しています。問題は、このレイヤーが64ビットウィンドウマネージャーによって生成された通知によって生成されたコードの異常を傍受することです。その結果、デバッガーは例外を識別して入力できませんでした。

この問題を解決するために、いくつかの解決策が提案されました:

プラットフォームターゲットをanyCPUとして設定し、選択した「32ビットを好む」この方法により、アプリケーションが64ビットプロセスに変更され、WOW64シミュレーションレイヤーとそれに関連する異常な問題が排除されました。ただし、「編集と継続」機能に影響を与える可能性があり、32ビットコードに依存することは不可能かもしれません。

その他のソリューション

"debug"> "Odoma"では、CLRが「スロー」チェックボックスを有効にし、義務デバッガーは異常なコードラインを停止します。

ロードイベント処理プログラムでFairfast Processingを使用したTry/Catchブロック。
    Main()で
  • set
  • を設定して、デバッグモードで異常なキャプチャを無効にします。
  • ロードイベント処理プログラムにおけるコードの必要性を再評価し、代替イベント処理プログラムまたはコンストラクターを使用して適切なコードを配置することを検討します。
  • Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException) Wows64の問題が解決されたWindows 8以降にアップグレードします。

以上がVS2010は、64ビットWinformsアプリで未処理の例外メッセージを表示しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。