Conversion CString en int sous embeded visual C++

pekeeTeam Messages postés 7 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 15 janvier 2006 - 12 avril 2005 à 11:19
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 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 !

merci par avance.........

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
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.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
12 avril 2005 à 17:39
utilise les mfc : passe en CString

et utilise les fonctions de conversions de cette lib.



sinon, tu peux convertir en char* a l'intérieur de ton code

mais ne cherche pas à l'afficher ou le stocker...



Nono
0
Rejoignez-nous