J'ai une fonction qui renvoie une valeur DWORD différente pour chaque cas, il y a une erreur. J'ai donc les définitions suivantes:Combinaison de la valeur de GetLastError et d'un message d'erreur personnalisé
#define ERR_NO_DB_CONNECTION 0x90000
#define ERR_DB_NOT_OPEN 0x90001
#define ERR_DB_LOCKED 0x90002
#define ERR_DB_CONN_LOST 0x90003
Maintenant, je renvoie ces valeurs lorsqu'une erreur se produit. Je dois également retourner la valeur de GetLastError dans le même retour.
Non, je ne peux pas le lire plus tard.
J'ai essayé combinant différentes façons, par exemple:
return ERR_DB_NOT_OPEN + GetLastError();
puis extraire l'erreur en soustrayant la valeur de ERR_DB_NOT_OPEN mais comme je dois l'utiliser dans des fonctions où il peut y avoir plusieurs retour des valeurs qu'il peut obtenir assez complexe pour le faire.
Y a-t-il un moyen d'y parvenir? Je veux dire, combiner la valeur + GetLastError et les extraire plus tard? Le code est apprécié.
Merci
Jess.
Ce n'est pas tout à fait vrai. Les bits supérieurs sont utilisés pour coder la gravité, la facilité et ainsi de suite. Voir winerror.h. –
Ce ne sont que les codes d'erreur existants; Microsoft se réserve le droit d'ajouter de nouveaux codes d'erreur dans le futur. – Luke