エラー コードからのエラー メッセージの取得: 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 サイトの他の関連記事を参照してください。