Aumenov
Messages postés9Date d'inscriptiondimanche 23 décembre 2007StatutMembreDernière intervention13 janvier 2008
-
24 déc. 2007 à 16:29
Aumenov
Messages postés9Date d'inscriptiondimanche 23 décembre 2007StatutMembreDernière intervention13 janvier 2008
-
24 déc. 2007 à 16:56
Salut à tous,
J'ai un petit problème, les experts parmi vous en ont sans doute la réponses.
Soit le bout de code suivant:
typedef struct _KEY_DATA {
USHORT KeyData;
LIST_ENTRY ListEntry;
} KEY_DATA;
.....
KEY_DATA * kData;
char keys[256];
........
// on fait des traitements
........
DbgPrint("the kData->KeyData is : %x\n",kData->KeyData);
if (kData->KeyData == 10) {
strcpy (keys, "my chain ");
DbgPrint("test keys: %s\n", keys);
}
else DbgPrint("test failure!\n");
Avec le DbgPrint(), je sais que kData->KeyData est égale à 10, c'est qui est affiché!
quand je fais le test if (kData->KeyData == 10), le test échoue!! Le message test failure est affiché! Pourtant je compare la valeur kData->KeyData à 10!!! je comprends pas...
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 24 déc. 2007 à 16:39
Hmmm 10 en décimal ou en hexa ?
Car DbgPrint("the kData->KeyData is : %x\n",kData->KeyData);
%x fait afficher la valeur en hexadécimal.
Cependant, tu compares à une valeur décimal.
Si c'est de l'hexa c'est 0x10
Sinon, je n'ai aucune problème à comparer un USHORT à une valeur inférieur ou égal à 0xFF.