如何将Hresult转换为错误描述

How to convert HRESULT into an error description?

本文关键字:错误 描述 转换 Hresult      更新时间:2023-10-16

说,如果我的winapi失败了HRESULT代码。有没有办法将其转换为错误描述字符串?

这是我们内部使用的辅助函数从hresult提取Win32错误代码:

DWORD Win32FromHResult(HRESULT hr)
{
    if ((hr & 0xFFFF0000) == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, 0))
    {
        return HRESULT_CODE(hr);
    }
    if (hr == S_OK)
    {
        return ERROR_SUCCESS;
    }
    // Not a Win32 HRESULT so return a generic error code.
    return ERROR_CAN_NOT_COMPLETE;
}

然后,您可以使用FormatMessage将其放入字符串表单中。