Heim > Artikel > Backend-Entwicklung > Wie kann ich Windows-GetLastError()-Fehlercodes in für Menschen lesbare Meldungen umwandeln?
So interpretieren Sie von GetLastError() zurückgegebene Fehlercodes
Nach dem Aufrufen eines Windows-API-Aufrufs können Entwickler auf Fehlersituationen stoßen, bei denen das Verständnis des zugrundeliegenden Fehlers nicht gewährleistet ist Entscheidend ist die Ursache des Scheiterns. Die native Win32-API-Funktion GetLastError() stellt einen Fehlercode bereit, aber dieser Code wird als Ganzzahl dargestellt, was es schwierig macht, seine Bedeutung zu entschlüsseln.
Konvertieren von Fehlercodes in Textnachrichten
Um eine für Menschen lesbare Fehlermeldung zu erhalten, benötigen Entwickler einen Mechanismus, um diese numerischen Fehlercodes in Textbeschreibungen umzuwandeln. Das folgende Code-Snippet zeigt diesen Konvertierungsprozess:
#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; }
Verwendung:
Um diese Funktion zu nutzen, rufen Sie einfach GetLastErrorAsString() nach jedem API-Aufruf auf, der möglicherweise eine zurückgibt Fehlercode. Es wird ein std::string zurückgegeben, der die Textfehlermeldung enthält, die dann dem Benutzer angezeigt oder zur weiteren Diagnose protokolliert werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich Windows-GetLastError()-Fehlercodes in für Menschen lesbare Meldungen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!