실패 :가 0xc0000005 : 액세스 위반 쓰기 위치를 0x00000000 Test.exe라는에서 0x13929384 에서64 비트 예외는 자동으로 다음 코드는 윈도우 7 32 비트에서 실행 때 하드 실패 할 줄 것이다
첫 번째 예외. 0xC0150010 : Test.exe라는에 0x77c6ee42 에서
첫 번째 예외 활성화 컨텍스트 가 현재 스레드의 실행을위한 활성화되지 비활성화된다.
왜 그럴까요? 나는 그것이 하드웨어 예외 (http://msdn.microsoft.com/en-us/library/aa363082.aspx) 인 것을 안다.하지만 32 비트와 64 비트에서 차이가 나는 이유는 무엇일까? 그리고 이런 종류의 오류를 올바르게 처리하기 위해 무엇을 할 수 있습니까? 실제로 덫에 걸리고 고정되어야하기 때문에 Windows는 현재 응용 프로그램에 메시지를 보내고 실행하게합니다 (사용자와 개발자는 실제로 발생한 문제를 완전히 알지 못합니다).
업데이트 :이 우리의 정규 충돌보고 소프트웨어가 SetUnhandledExceptionFilter
사용하지만이의 WndProc 내부 하드웨어 예외 64에서 호출되지 않습니다. 누구, 또는 해결 방법에 대한 정보가 있습니까?
갱신 2 : 나는 마이크로 소프트 연결에서이 문제를보고 한 :
더미가 액세스 위반 예외 풀어진되는 동안 제기되고 또 다른 예외가있다 https://connect.microsoft.com/VisualStudio/feedback/details/550944/hardware-exceptions-on-x64-machines-are-silently-caught-in-wndproc-messages
: 여기에 스택 및 분해는? – jalf
x64 용 컴파일은 실제로 옵션이 아닙니다. 우리 소스 코드는 대략 1 백만 라인의 코드와 상당한 양의 어셈블러로 구성됩니다. 이를 QA 등을 통해 두 개의 개별 빌드를 실행하는 데 드는 추가 비용과 결합하십시오. –
[WindowProc 콜백 함수] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633573%)의 발언 섹션을 참조하십시오. 28v = vs.85 % 29.aspx) – wimh