2

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

4

1 回答 1

5

这是我们在内部使用的帮助函数,用于从 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将其转换为字符串形式。

于 2014-03-06T19:39:59.433 回答