2

私の C# コードでCOMExceptionは、s の 16 進表現HRESULT(たとえば、0x80004005) だけでなく、対応する WinError.h 定義シンボル (などE_FAIL) も出力されるように、s をログに記録できるようにしたいと考えています。

ToString()例外参照を呼び出すと、16 進表現のみが表示されます。

オブジェクト内の値のE_FAIL-like 人間が読める定数を取得する組み込みの方法はありますか?HRESULTCOMException

4

2 に答える 2

5

COMExceptionHResultプロパティを使用してこのようなもの

unchecked
{
    var msg = Marshal.GetExceptionForHR((int)0x80004005).Message;
}
于 2013-08-23T09:06:56.253 に答える
0

ここを見てください - http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351%28v=vs.85%29.aspx at FORMAT_MESSAGE_FROM_SYSTEM. 渡されたエラー コードに関する人間が判読できるメッセージを返します。

于 2013-08-23T09:05:43.690 に答える