Windowsのエラーメッセージの内容を通訳して"日本語で表示する"ツール(コマンド版)
『ErrMsg』はWindowsのエラーメッセージの内容を通訳してくれるツールというのがあったが、
同じようなコマンドを自作していた。日本語で表示できるし、入力は10進数でも16進数でもOKにしている。
ダウンロード先
使い方
err2msg エラー番号
実行例
[D:\workspace\C_SandBox\02Windows\err2msg]err2msg 2 ERROR:2 MESSAGE:指定されたファイルが見つかりません。 [D:\workspace\C_SandBox\02Windows\err2msg]err2msg 0x1779 ERROR:6009 MESSAGE:指定されたファイルは読み取り専用です。 [D:\workspace\C_SandBox\02Windows\err2msg]err2msg 0 ERROR:0 MESSAGE:この操作を正しく終了しました。 [D:\workspace\C_SandBox\02Windows\err2msg]err2msg 11111 ERROR:11111 MESSAGE:NULL
ソース
自分のためのコマンドなので手抜き。
err2msg.c
#include <stdlib.h> #include <stdio.h> #include <windows.h> int main(int argc, char* argv[]){ LPVOID lpMsgBuf = NULL; long error = 0; char buf[128] = {0}; if(2 != argc ){ printf("usage: %s ErrorNumber(GetLastError)\n", argv[0]); return (1); } error = atol(argv[1]); if( error == 0 ) { error = _strtoui64(argv[1], NULL, 16); } FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); if(lpMsgBuf == NULL){ lpMsgBuf = "NULL"; } printf("ERROR:%d\nMESSAGE:%s", error, lpMsgBuf); }
コンパイル方法
cl err2msg.c