首頁 > 後端開發 > C++ > 為什麼我的64位VS2010 Winforms應用程序中缺少未經手的例外?

為什麼我的64位VS2010 Winforms應用程序中缺少未經手的例外?

Patricia Arquette
發布: 2025-02-01 22:16:13
原創
420 人瀏覽過

Why Are Unhandled Exceptions Missing in My 64-bit VS2010 WinForms Application?

VS2010中的64位Winforms應用程序調試:失踪的異常

在Visual Studio 2010中調試新的64位Windows Winforms應用程序嗎?您可能會發現未經處理的例外沒有觸發調試器。這是由於WOW64仿真層造成的,該層攔截了代碼中響應64位窗口管理器通知的異常(例如

>事件)。 Form1_Load

根本原因和影響>

問題源於Windows的無法正確處理從32位(您的應用程序)移動到64位(通知源)代碼的異常。 這使調試變得困難,因為調試器是看不見的。

>

solutions

以下幾種方法可以解決以下方法:

>

  • 針對Anycpu,禁用32位偏好:將項目的平台目標設置為“ Anycpu”,並取消選中“偏愛32位”強迫64位流程,繞過WOW64問題。 注意:這可以在2013年之前使用VS版本“編輯和繼續”,並可能引起32位依賴關係的問題。 >
  • >啟用CLR異常投擲:在調試器的“異常”窗口(debug>例外)中,查看“拋棄”框以獲取CLR異常。這迫使例外的斷裂點。
  • wrap
  • 中的事件: > Load事件處理程序代碼在try/catch> block中。 在塊中使用Load,用於帶有詳細報告的受控崩潰。 try/catch> Environment.FailFast()調整catch
  • >在您的
  • >方法中,調用>以防止消息循環在調試過程中抑制異常。 UnhandledExceptionMode> Main()>重新評估Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)事件用法:考慮
  • 事件處理程序是否確實需要其所有代碼。 將一些動作移動給構造函數可能會有所幫助。 Load>>升級到Windows 8或更高版本:Load
  • 新的Windows版本解決WOW64問題。
  • 這些解決方案沒有解決潛在的問題,但是它們提供了在這種情況下調試未經治療例外的實用方法。 >

以上是為什麼我的64位VS2010 Winforms應用程序中缺少未經手的例外?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板