gpt4 book ai didi

c++ - 如何从 E_FAIL 获取详细的错误信息?

转载 作者:行者123 更新时间:2023-11-28 03:25:09 30 4
gpt4 key购买 nike

当我在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 - 记住您的代码片段 - 不太可能。

您能做的最好的事情就是深入内部,尽可能接近代码的源头,以便辨别代码的来源。

关于c++ - 如何从 E_FAIL 获取详细的错误信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291577/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com