Maison > Article > développement back-end > Comment traduire les codes d'erreur de l'API Windows en messages texte lisibles par l'homme ?
Comment récupérer des messages d'erreur textuels à partir de codes d'erreur dans l'API Windows
Dans l'API Windows, la fonction GetLastError() renvoie une erreur entière code qui indique le résultat d’un appel système. Pour obtenir un message d'erreur lisible par l'homme correspondant à ce code, nous pouvons employer les techniques suivantes :
Méthode 1 : Utilisation de la fonction FormatMessage()
Le FormatMessage( ) offre un moyen pratique de convertir les codes d’erreur en messages texte. Il prend plusieurs paramètres :
Exemple de code :
//Returns the last Win32 error, in string format. Returns an empty string if there is no error. std::string GetLastErrorAsString() { //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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!