Heim >Backend-Entwicklung >C++ >Warum werden in meiner VS2010-WinForms-App unter 64-Bit-Fenstern unbehandelte Ausnahmen unterdrückt?

Warum werden in meiner VS2010-WinForms-App unter 64-Bit-Fenstern unbehandelte Ausnahmen unterdrückt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 22:11:09352Durchsuche

Why Are Unhandled Exceptions Suppressed in My VS2010 WinForms App on 64-bit Windows?

debugging uneingeschränkte Ausnahmen in 64-Bit VS2010 WinForms-Anwendungen

Entwicklung von WinForms-Anwendungen in VS2010 auf 64-Bit-Fenstern kann eine Herausforderung darstellen: Der Debugger kann nicht unberatete Ausnahmen angezeigt. Dies ist ein bekanntes Problem im Zusammenhang mit der Emulationsschicht (Windows-on-Windows (WOW64).

Lösungen:

Hier erfahren Sie, wie Sie dieses frustrierende Problem angehen:

  1. Ziel AnyCPU (64-Bit): In den Eigenschaften Ihres Projekts (Projekt & GT; Eigenschaften & GT; Build) ändern Sie das "Plattformziel" in "AnyCPU" und deaktivieren Sie "Bevorzugt" 32-Bit ". Laufen als natives 64-Bit-Prozess umgeht WOW64-Einschränkungen.

  2. Aktivieren Sie "geworfen" für CLR -Ausnahmen: Öffnen Sie das Fenster "Ausnahmen" (Debugg & gt; Ausnahmen) und überprüfen Sie das Feld "geworfen" auf Ausnahmen für die gemeinsame Sprachlaufzeit (CLR). Dies stellt sicher, dass der Debugger den Ursprung der Ausnahme bricht.

  3. Handle Ausnahmen im Ladeereignis von Form1 (oder Konstruktor): Wickeln Sie Ihren Code in einen try-catch -Blocker in den Ereignishandler (oder vorzugsweise den Konstruktor). Verwenden Sie im Form1_Load -Block catch, um die Anwendung sofort zu beenden, und liefern ein klares Feedback. Application.Exit()

  4. Verwenden Sie : Application.SetUnhandledExceptionMode In Ihrer -Methode Main(). Dies verhindert, Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

  5. Bewerten Sie die Event-Handler-Platzierung neu:

    Überlegen Sie, ob das Ereignis der beste Ort für Ihren Code ist. Der Konstruktor ist möglicherweise ein geeigneterer Ort. Load

  6. Upgrade (wenn möglich):

    spätere Windows -Versionen haben sich möglicherweise mit diesem WOW64 -Problem befasst.

Verständnis der Ursache:

Diese mangelnde Ausnahme-Sichtbarkeit ist eine dokumentierte Eigenart, die sich aus der Schwierigkeit ergibt, Ausnahmen von 32-Bit bis 64-Bit-Code in der WOW64-Umgebung zu übergeben. Während diese Problemumgehungen helfen, bleibt das zugrunde liegende Problem unterwegs eine laufende Diskussion zwischen den Teams von Microsoft.

Das obige ist der detaillierte Inhalt vonWarum werden in meiner VS2010-WinForms-App unter 64-Bit-Fenstern unbehandelte Ausnahmen unterdrückt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn