GetLastError() によって返されるエラー コードを解釈する方法
Windows API 呼び出しを呼び出した後、開発者は、根底にあるエラー コードを理解できないエラー状況に遭遇することがあります。失敗の理由が重要です。ネイティブ Win32 API 関数 GetLastError() はエラー コードを提供しますが、このコードは整数として表されるため、その意味を解読することが困難です。
エラー コードをテキスト メッセージに変換する
人間が判読できるエラー メッセージを取得するには、開発者はこれらの数値エラー コードをテキストの説明に変換するメカニズムを必要とします。以下のコード スニペットは、この変換プロセスを示しています。
#include <windows.h> #include <string> std::string GetLastErrorAsString() { // Retrieve the error message ID, if available. DWORD errorMessageID = ::GetLastError(); if (errorMessageID == 0) { return std::string(); // No error message has been recorded. } LPSTR messageBuffer = nullptr; // Instruct Win32 to generate the message string for the provided error ID. 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); // Transfer the error message into a std::string. std::string message(messageBuffer, size); // Deallocate Win32's message buffer. LocalFree(messageBuffer); return message; }
使用法:
この関数を利用するには、API 呼び出しの後に GetLastErrorAsString() を呼び出すだけで、エラーコード。テキストのエラー メッセージを含む std::string が返されます。これは、ユーザーに表示したり、さらなる診断のためにログに記録したりできます。
以上がWindows GetLastError() エラー コードを人間が読めるメッセージに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。