Heim >Backend-Entwicklung >C++ >Warum werden in meiner VS2010-WinForms-App unter 64-Bit-Fenstern unbehandelte Ausnahmen unterdrückt?
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:
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.
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.
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()
Verwenden Sie : Application.SetUnhandledExceptionMode
In Ihrer -Methode Main()
. Dies verhindert,
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Überlegen Sie, ob das Ereignis der beste Ort für Ihren Code ist. Der Konstruktor ist möglicherweise ein geeigneterer Ort.
Load
spätere Windows -Versionen haben sich möglicherweise mit diesem WOW64 -Problem befasst.
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!