如何从E_FAIL获取详细的错误信息
How to get detail error info from E_FAIL?
当我在MFC应用程序中使用ATL时(不要问我为什么,只是因为我喜欢),有时我会得到错误代码:E_FAIL。但是,我几乎找不到具体的原因。
我已经谷歌了很多次,但没有找到任何相关的。我觉得ATL里应该有try{} catch{}
之类的东西
下面是一些示例代码:
CAxWindow m_wndView; // ActiveX host window class.
CComPtr<IWMPPlayer> m_spWMPPlayer; // Smart pointer to IWMPPlayer interface.
AtlAxWinInit();
CComPtr<IAxWinHostWindow> spHost;
HRESULT hr;
CRect rcClient;
GetClientRect(&rcClient);
m_wndView.Create(m_hWnd, rcClient, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
//when I switch to Static Link to ATL from Dynamic Link to ATL, I always get E_FAIL
hr = m_wndView.QueryHost(&spHost);
有人能帮我吗?
错误代码完全是特定于函数的。想想(另一边的)一段代码,它做了return E_FAIL;
,我们可以从中得到什么额外的细节?很有可能你根本就没有细节。
GetErrorInfo
API获得额外的信息,在你的情况下-记住你的代码片段-不太可能。你能做的最好的事情就是深入到里面,尽可能接近代码的起源,以便判断它来自哪里。
使用_com_error
类。通过传入HRESULT
值来构造该类的对象,然后使用其WCode
或ErrorMessage
方法来获取映射到HRESULT
值的错误代码。
相关文章:
- 提升异常的错误信息
- 我可以复制构造一个带有错误信息的提升::异常吗?
- androidndk和eclipse给出了关于c++getline()函数的不同错误信息
- 如何从lex / yacc获取更多解析错误信息
- Lua+Luabind,"runtime error"后堆栈顶部没有错误信息
- 如何使用Boost获取SyntaxError、NameError等的Python错误信息
- 用户输入数字的错误信息/向量
- 如何在MSBuild中定制c++编译器错误信息
- 程序崩溃,没有错误信息
- 在正确嵌套错误信息时遇到麻烦
- 错误信息c++
- 改进了dll丢失错误信息
- 关于隐式删除虚析构函数的错误信息是什么?
- 如何在c++中解释以下错误信息
- 如何解释显示在控制台上的c++错误信息
- 在我用c++编写的程序中显示错误信息
- visual studio中错误信息后面的消息是什么意思?
- c++汽车仪表模拟器.我一直收到这些错误信息
- Xcode 3.2断点错误信息
- 分割错误(core dumps) c++代码编译时的错误信息