pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006
-
12 avril 2005 à 11:19
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011
-
12 avril 2005 à 17:39
extrait du source:
int i;
CString s = "31140";
i = atoi( (char*) LPCTSTR (s) );
printf( "i = %d\n", i );
le résultat est :
i = 3
Je veux que le résultat soit égal à i = 31140;
J'ai fait ce programme de test pour savoir à quel moment ca foire.
const unsigned short* port=LPCTSTR(s);
unsigned short* port1=const_cast(port);
short* port2= reinterpret_cast<short*>(port1);
char* port3=reinterpret_cast<char*>(port2);
int i=atoi(port3);
résultat:
port = 31140
port1 = 31140
port2 = pas de valeur donné par le débuger
port3 = 3
i = 3
Ca marche bien sous VC6.Donc je suppose que le compilo qui me fait chier.
Alors comment puis je faire ?
HELP ME, svp !
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 12 avril 2005 à 13:47
Embedded est UNICODE apparemment et donc il faut oublier tous les char* et fct du C qui utilisent des char* (strcpy, itoa, atoi...). Il faut utiliser l'équivalent UNICODE (wchar_t, _wtoi....) Regarde les fichiers "wchar.h" et "tchar.h" pour les équivalences.