3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net)WindowsAPIのエラーコードからメッセージを取得する

.NET から WindowsAPI(Win32API) を呼び出した場合大抵の Win32API は戻り値としてエラーコードを返します。

このエラーコードはWin32 エラー コードと呼ばれてるようですが、System.ComponentModel.Win32Exception クラスの Message メソッドを使うとエラーコードのメッセージ文字列が取得できるようです。

ということで、参考先のコードそのままですがWin32エラーコードからエラーメッセージと16進数のエラーコードを返すメソッドです。(C#)

///

Win32エラーコードから、エラーを説明するメッセージと16進数表現を返します。

/// Win32エラーコード

/// メッセージ+16進数

public static string FormatMessage(int code)

{

byte[] b = BitConverter.GetBytes(code);

Array.Reverse(b);//リトルエンディアンなので

string bs = "0x" + BitConverter.ToString(b, 0).Replace("-", "");

 

return string.Format("{0}({1})", new System.ComponentModel.Win32Exception(code).Message, bs);

}

参考:

C#メモ - shise.net

以下Win32のエラーコードを載せているサイトです。

Windowsシステムエラーコード一覧

Win32エラーコード一覧

Network Management Error Codes (Windows) ネットワーク系のみ。