是否有一种内置的方法将HRESULT表示为winerror.h常量,如E_FAIL

本文关键字:winerror 表示 常量 FAIL HRESULT 一种 方法 内置 是否 | 更新日期: 2023-09-27 18:28:48

在我的C#代码中,我希望能够记录COMExceptions,这样不仅可以输出HRESULTs的十六进制表示(例如,0x80004005),还可以输出相应的WinError.h定义符号(例如E_FAIL)。

如果我在异常引用上调用ToString(),那么只有十六进制表示。

有没有一种内置的方法可以为COMException对象中的HRESULT值获取类似E_FAIL的人类可读常量?

是否有一种内置的方法将HRESULT表示为winerror.h常量,如E_FAIL

使用COMExceptionHResult属性

unchecked
{
    var msg = Marshal.GetExceptionForHR((int)0x80004005).Message;
}

看这里-http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351%28v=vs.85%29.aspxFORMAT_MESSAGE_FROM_SYSTEM。它返回有关传递的错误代码的可读信息。