Maison > développement back-end > C++ > le corps du texte

Comment puis-je convertir les codes d'erreur Windows GetLastError() en messages texte lisibles par l'homme ?

DDD
Libérer: 2024-11-19 15:29:02
original
531 Les gens l'ont consulté

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

Récupération des messages d'erreur textuels à partir des codes d'erreur GetLastError()

Lors de l'exécution d'appels d'API Windows, la fonction GetLastError() fournit une valeur entière code d'erreur indiquant les problèmes rencontrés. Pour obtenir un message d'erreur plus informatif, suivez ces étapes :

1. Utiliser FormatMessageA :

La fonction FormatMessageA vous permet de convertir un code d'erreur en un message d'erreur textuel. Il nécessite les paramètres suivants :

  • FORMAT_MESSAGE_ALLOCATE_BUFFER : alloue un tampon pour stocker le message.
  • FORMAT_MESSAGE_FROM_SYSTEM : utilise les messages d'erreur fournis par le système.
  • FORMAT_MESSAGE_IGNORE_INSERTS : ignore le message modificateurs (par exemple, "%1").
  • NULL : indique que le message sera formaté sans aucun paramètre.
  • &messageBuffer : pointeur vers le tampon alloué pour le message.

2. Invoquez la fonction :

Appelez FormatMessageA avec les paramètres appropriés, y compris le code d'erreur :

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);
Copier après la connexion

3. Copiez et libérez le message d'erreur :

Après avoir récupéré le message, copiez son contenu dans une chaîne et libérez le tampon alloué à Win32 :

std::string message(messageBuffer, size);
LocalFree(messageBuffer);
Copier après la connexion

En suivant ces instructions, vous pouvez obtenez un message d'erreur détaillé sous forme textuelle à partir du code d'erreur renvoyé par GetLastError(), améliorant ainsi votre compréhension des problèmes rencontrés lors des appels d'API Windows.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal