没有:
- MFC
- ATL
如何使用 FormatMessage()
获取 HRESULT
的错误文本?
HRESULT hresult = application.CreateInstance("Excel.Application");
if (FAILED(hresult))
{
// what should i put here to obtain a human-readable
// description of the error?
exit (hresult);
}
原文由 Aaron 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是从系统返回错误消息的正确方法
HRESULT
(在这种情况下命名为 hresult,或者您可以将其替换为GetLastError()
):这与大卫哈纳克的答案之间的主要区别是使用
FORMAT_MESSAGE_IGNORE_INSERTS
标志。 MSDN 对如何使用插入有点不清楚,但 Raymond Chen 指出,在检索系统消息时永远不要使用它们,因为您无法知道系统期望哪些插入。FWIW,如果您使用的是 Visual C++,您可以使用
_com_error
类让您的生活更轻松:据我所知,它不是 MFC 或 ATL 的一部分。