Heim >Backend-Entwicklung >C++ >Warum fehlen Ausnahmemeldungen in 64-Bit-Windows-Winforms-Anwendungen mit VS2010?
Bei der Verwendung von Visual Studio 2010, um eine neue Windows -Formulationsanwendung auf dem 64 -Bit -Windows -System zu erstellen, kann dies auf Probleme stoßen, die nicht angezeigt und nicht vorbereitet wurden. Wenn der Code im Code im Programm zur Verarbeitung von Ereignisereignissen nicht im Code verarbeitet wird, überspringt das Programm die Problemcodezeile und wird weiterhin ohne Fehler ausgeführt. Dies unterscheidet sich von dem Verhalten der erwarteten Debugger -Unterbrechung und der ungewöhnlichen Anzeige der ungewöhnlichen Informationen.
Die Ursachenanalyse
Dieses abnormale Verhalten stammt aus WOW64 (Windows-on-Windows 64-Bit) -Simulationsschicht, um mit 32-Bit-Code zu interagieren, das auf 64-Bit-Systemen ausgeführt wird. Wenn der 64 -Bit -Fenstermanager die Benachrichtigung auslöst, wird der Antwortcode (z. B. das Last -Ereignisverarbeitungsprogramm) in einer 32 -Bit -Umgebung ausgeführt. Wenn in diesem 32 -Bit -Code Anomalien auftreten, kann die WOW64 -Schicht Abnormalität schlucken und verhindern, dass der Debugger sie erkennt.
Lösung und Änderungsmethode
Legen Sie das Plattformziel als AnyCPU ein und stornieren Sie das ausgewählte "Bevorzugt 32 -Bit":
Navigation zu Projekt & GT; Stellen Sie das Plattformziel auf AnyCPU ein.
Kontrollkästchen CLR Abnormal "verursacht".
Dies wird die Ausführung des obligatorischen Debuggers in jeder CLR -abnormalen Linie unabhängig von seinem Standort im Last -Event -Verarbeitungsprogramm aussetzen.Verwenden Sie fehlerhaft, um eine Fehlermeldung im Catch -Block anzuzeigen und die Anwendung plötzlich zu beenden.
Dies wird während des Debuggens abnormale Erfassung deaktiviert, die im Nachrichtenzyklus deaktiviert sind.
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
revaluse, ob Ihr Code wirklich im Last -Event -Verarbeitungsprogramm platziert werden muss.
Zusätzliche Beschreibung:
Das obige ist der detaillierte Inhalt vonWarum fehlen Ausnahmemeldungen in 64-Bit-Windows-Winforms-Anwendungen mit VS2010?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!