Je viens de vérifier que atoi() ne donne rien,
mais
{
char tt[32], tst[10];
int aa;
strcpy(tst, "0x25" );
sscanf(tst, "%x", &aa);
sprintf(tt, "%d", aa);
MessageBox(hWnd, tt, "valeur de 0x25", MB_OK);
}
comme suggéré par letoii fonctionne très bien : on obtient 37 décimal, ce qui est bien l'équivalent de 25Hexa.
Il doit y avoir un pb avec la chaîne, pb pointeur, .. ???
Dans aa, on a 37 décimal, 25 hexa, 101001 en binaire.