Visual Studio 2010 : 64 비트 Windows Winforms Exception Handling enigma
근본 원인 이해
이 동작은 64 비트 시스템에서 32 비트 코드를 에뮬레이션하는 Windows의 "WOW64"레이어와 연결되어 있습니다. 64 비트 윈도우 관리자가 이벤트를 트리거 할 때 (이벤트와 같은) WOW64는 32 비트 프로세스 코드를 가로 채립니다. 이 차단 된 코드 내에서 처리되지 않은 예외는 마스킹되어 디버거가 그들을 잡지 못하게합니다.솔루션 및 해결 방법
대상 플랫폼 조정 : 프로젝트의 "플랫폼 대상"을 "AnyCPU"(프로젝트 속성 & gt; 빌드)로 변경합니다. 이로 인해 응용 프로그램은 WOW64를 우회하여 64 비트 프로세스로 만듭니다. 참고 : 이로 인해 32 비트 종속성과의 호환성 문제가 발생할 수 있습니다
디버거 예외 설정 : Load
디버그 & gt; 예외, CLR 예외는 "Thrown"상자를 확인하십시오. 이것은 예외가 발생할 때 디버거가 일시 중지되도록합니다
로드 이벤트 예외 처리 : 이벤트 핸들러 내에서 코드를 블록으로 감습니다.
글로벌 예외 처리 :
메소드에서 를 사용하십시오. 이로 인해 디버그 모드에서 도대치되지 않은 예외가 발생하지만이벤트 핸들러 검토 : 이벤트에 있어야하는
가 필요한지 고려하십시오. 이 이벤트는 항상 필수적 인 것은 아니며, 불필요하게, 특히 vb.net에서 더 나은 이벤트 핸들러 선택을 모호하게 할 수 있습니다.운영 체제 업그레이드 : Windows 8 이상으로 업그레이드하는 경우가 종종이 WOW64 관련 문제를 해결합니다.
이러한 솔루션 중 하나를 구현하면 64 비트 Windows의 Visual Studio 2010 Winforms 응용 프로그램에서 효과적으로 디버깅하고 처리 할 수 있습니다.위 내용은 64 비트 Windows의 Visual Studio 2010 Winforms Apps에서 처리되지 않은 예외가 사라지는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!