我在Visual Studio 2008 C++中遇到了一个问题。我使用最初为visual studio 2003编写的代码,其中一切正常。现在,移植到VS 2008,异常处理在代码中广泛存在,不再适用。标准的代码示例:在VS 2008中没有捕获到HRESULT异常
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 }
在VS 2008中,也不例外遇到,但我得到一个崩溃的其他地方,这表明堆栈指针必须被搞砸了。有人遇到过这种行为吗?任何帮助表示赞赏。
有没有这样的事情VS2009。我编辑了您的问题以匹配您的标签,2008年。如果您指的是2010年新版本,请编辑您的问题以表明这一点。 – 2010-04-22 14:26:13
如果你在'throw hr;'这一行放置了一个断点,你是否打断点? – 2010-04-22 14:47:45
我确实打了它,之后它让我进入反汇编的地方,说“微软的C++ - 例外:长在内存位置0x0016c814” – arionik 2010-04-22 14:55:21