Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menukar Kod Ralat Windows GetLastError() kepada Mesej Boleh Dibaca Manusia?
Cara Mentafsir Kod Ralat yang Dikembalikan oleh GetLastError()
Selepas menggunakan panggilan API Windows, pembangun mungkin menghadapi situasi ralat di mana memahami asas sebab kegagalan adalah penting. Fungsi Win32 API asli GetLastError() menyediakan kod ralat, tetapi kod ini diwakili sebagai integer, menjadikannya sukar untuk menghuraikan maksudnya.
Menukar Kod Ralat kepada Mesej Tekstual
Untuk mendapatkan mesej ralat yang boleh dibaca manusia, pembangun memerlukan mekanisme untuk menukar kod ralat berangka ini kepada penerangan teks. Coretan kod di bawah mempamerkan proses penukaran ini:
#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; }
Penggunaan:
Untuk menggunakan fungsi ini, cuma panggil GetLastErrorAsString() selepas sebarang panggilan API yang mungkin mengembalikan kod ralat. Ia akan mengembalikan std::rentetan yang mengandungi mesej ralat teks, yang kemudiannya boleh dipaparkan kepada pengguna atau dilog untuk diagnostik lanjut.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Kod Ralat Windows GetLastError() kepada Mesej Boleh Dibaca Manusia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!