Windows API を操作する場合、多くの場合、Windows API 呼び出しから返されたエラー コードに関連付けられたエラー メッセージを取得する必要があります。 GetLastError()。このエラー コードは整数値であり、人間が判読できるテキスト メッセージではありません。
エラー コードをデバッグやトラブルシューティングに役立つテキスト形式に変換するには、次のコード スニペットを使用できます。
//最後の Win32 エラーを文字列形式で返します。エラーがない場合は空の文字列を返します。<br>std::string GetLastErrorAsString()<br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">//Get the error message ID, if any. DWORD errorMessageID = ::GetLastError(); if(errorMessageID == 0) { return std::string(); //No error message has been recorded } LPSTR messageBuffer = nullptr; //Ask Win32 to give us the string version of that message ID. //The parameters we pass in, tell Win32 to create the buffer that holds the message for us (because we don't yet know how long the message string will be). 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 std::string. std::string message(messageBuffer, size); //Free the Win32's string's buffer. LocalFree(messageBuffer); return message;
}
この関数GetLastErrorAsString() は、Windows API によって記録された最後のエラー コードに関連付けられたエラー メッセージを取得しようとします。まずエラー メッセージ ID を取得し、有効な場合は、FormatMessageA 関数を使用して人間が判読できる文字列に変換します。エラー メッセージは std::string オブジェクトに保存され、関数によって返されます。エラー メッセージが見つからない場合は、空の文字列が返されます。
以上がWindows API 呼び出しから人間が判読できるエラー メッセージを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。