Windows API エラー コードを人間が読めるエラー メッセージに変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-22 05:57:13
オリジナル
876 人が閲覧しました

How to Translate Windows API Error Codes into Human-Readable Error Messages?

エラー コードからのエラー メッセージの取得: GetLastError() の謎を解く

質問:

後Windows API 関数を呼び出す場合、対応するエラー メッセージにアクセスするにはどうすればよいですか?わかりやすいテキスト形式か? GetLastError() は単に数値エラー コードを提供するだけです。

回答:

GetLastError() によって報告された数値エラー コードを意味のある文字列表現に変換するには、次のコードを使用します。手順:

//Returns the last Win32 error, in string format. Returns an empty string if there is no error.
std::string GetLastErrorAsString()
{
    //Fetch the error message ID (if any)
    DWORD errorMessageID = ::GetLastError();
    if (errorMessageID == 0) {
        return std::string(); //No error message recorded
    }

    LPSTR messageBuffer = nullptr;

    //Request Win32 to translate the error ID into a string representation
    //We specify options to allocate the message buffer dynamically and retrieve the localized system message
    size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                                 NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL);

    //Copy the error message into a string
    std::string message(messageBuffer, size);

    //Release the dynamically allocated buffer used by Win32
    LocalFree(messageBuffer);

    return message;
}
ログイン後にコピー

以上がWindows API エラー コードを人間が読めるエラー メッセージに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート