home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2010/07/14/GetLastError()のエラーメッセージ

作成日: 2010-07-14 23:17:21   /   last updated at: 2010-07-14 23:19:36
カテゴリ: C言語 Windows 

を表示するだけのツール。実験コード書く時とか、一々エラーメッセージフォーマット用の関数コピペするのめんどいので、GetLastError()のコードだけ表示して終わりにしたい時。こっちのツールで日本語メッセージを確認する。

gle.cpp:

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    LPTSTR lpMsgBuf;
    DWORD err;
    if (2 != argc) {
        fprintf(stderr, "usage: %s error_code\n", argv[0]);
        return 1;
    }
    err = atol(argv[1]);
    switch (err) {
    case 0:
        fprintf(stderr, "error, not DWORD number: %s\n", argv[1]);
        return 2;
    case LONG_MAX:
    case LONG_MIN:
        fprintf(stderr, "error, out of range: %s\n", argv[1]);
        return 3;
    }
    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
        | FORMAT_MESSAGE_FROM_SYSTEM 
        | FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL, err,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR)&lpMsgBuf, 0, NULL);
    printf("%s\n", lpMsgBuf);
    LocalFree(lpMsgBuf);
    return 0;
}

コンパイル:

> cl gle.cpp

使い方:

> gle 100
ほかのシステム セマフォを作成できません。
original url: https://www.glamenv-septzen.net/view/709