Visual Studio 2008 C++에서 이상한 상황이 있습니다. 나는 원래 Visual Studio 2003 용으로 작성된 코드를 사용하는데 모든 것이 잘 작동한다. 현재 VS 2008로 포팅 된이 코드에서는 불행히도 널리 존재하지 않는 예외 처리가 더 이상 작동하지 않습니다. 표준 코드 예제 : VS 2008에서HRESULT 예외가 VS 2008에서 발견되지 않았습니다.
try { HRESULT hr = S_OK; // do stuff... if(FAILED(hr)) throw hr; } catch(HRESULT hr) { // error handling, but we never get here } catch(...) { // ... not even here }
는, 예외가 발생하지 않습니다,하지만 난 스택 포인터가 망해야한다는, 다른 곳에서 충돌을 얻을. 아무도이 행동을 보지 못했습니까? 어떤 도움을 주셔서 감사합니다.
VS2009와 같은 것은 없습니다. 2008 년 태그와 일치하도록 질문을 편집했습니다. 새 2010 버전을 언급하는 경우 질문을 편집하여이를 나타냅니다. –
'throw hr;'줄에 중단 점을두면 중단 점에 충돌합니까? –
내가 해체했을 때, 어딘가에 "Microsoft C++ 예외 : 메모리 위치가 0x0016c814가된다"라고 말하는 디스 어셈블리가 발생했습니다. – arionik