Heim >Backend-Entwicklung >C++ >Wie kann ich Windows-GetLastError()-Fehlercodes in für Menschen lesbare Textnachrichten umwandeln?

Wie kann ich Windows-GetLastError()-Fehlercodes in für Menschen lesbare Textnachrichten umwandeln?

DDD
DDDOriginal
2024-11-19 15:29:02586Durchsuche

How Can I Convert Windows GetLastError() Error Codes into Human-Readable Textual Messages?

Abrufen von Textfehlermeldungen von GetLastError()-Fehlercodes

Beim Ausführen von Windows-API-Aufrufen stellt die Funktion GetLastError() einen ganzzahligen Wert bereit Fehlercode, der auf aufgetretene Probleme hinweist. Um eine aussagekräftigere Fehlermeldung zu erhalten, führen Sie die folgenden Schritte aus:

1. Verwenden Sie FormatMessageA:

Mit der FormatMessageA-Funktion können Sie einen Fehlercode in eine Textfehlermeldung umwandeln. Es sind die folgenden Parameter erforderlich:

  • FORMAT_MESSAGE_ALLOCATE_BUFFER: Reserviert einen Puffer zum Speichern der Nachricht.
  • FORMAT_MESSAGE_FROM_SYSTEM: Verwendet vom System bereitgestellte Fehlermeldungen.
  • FORMAT_MESSAGE_IGNORE_INSERTS: Ignoriert die Nachricht Modifikatoren (z. B. „%1“).
  • NULL: Gibt an, dass die Nachricht ohne Parameter formatiert wird.
  • &messageBuffer: Zeiger auf den zugewiesenen Puffer für die Nachricht.

2. Rufen Sie die Funktion auf:

Rufen Sie FormatMessageA mit den entsprechenden Parametern auf, einschließlich des Fehlercodes:

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);

3. Kopieren Sie die Fehlermeldung und geben Sie sie frei:

Nachdem Sie die Nachricht abgerufen haben, kopieren Sie deren Inhalt in eine Zeichenfolge und geben Sie den zugewiesenen Win32-Puffer frei:

std::string message(messageBuffer, size);
LocalFree(messageBuffer);

Indem Sie diese Anweisungen befolgen, können Sie dies tun Erhalten Sie eine detaillierte Fehlermeldung in Textform aus dem von GetLastError() zurückgegebenen Fehlercode und verbessern Sie so Ihr Verständnis der bei Windows-API-Aufrufen aufgetretenen Probleme.

Das obige ist der detaillierte Inhalt vonWie kann ich Windows-GetLastError()-Fehlercodes in für Menschen lesbare Textnachrichten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn