zippro4012
Messages postés216Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention26 février 2006
-
17 mai 2005 à 18:06
zippro4012
Messages postés216Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention26 février 2006
-
18 mai 2005 à 13:29
Je débute en C++ :
Comment convertir un nombre (int, long, HKEY, ...) en chaine LPCTSTR
utilisé par les apis, sans utiliser de cast (j'ai essayé mais j'ai
l'impression que ça marche pas) ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 17 mai 2005 à 18:38
Cela dépend du contexte.
- Pour les Ids de ressources un cast suffit (ou MAKEINTRESOURCE(Id))
- Pour avoir l'équivalent de l'entier dans une chaîne de caractères (LPCTSTR est en fait un const char*) :
char szVal[16];
int val = 67;
itoa(val, szVal, 10);
Vous n’avez pas trouvé la réponse que vous recherchez ?
zippro4012
Messages postés216Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention26 février 20061 17 mai 2005 à 18:39
Si je fais le cast d'une variable int en LPCTSTR sous Dev-C++, il
accepte de compiler mais une erreur survient : "Asill.exe a rencontré
un problème et doit fermer. Nous vous prions de nous excuser pour le
désagrément encouru."
zippro4012
Messages postés216Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention26 février 20061 17 mai 2005 à 18:59
J'ai besoin de convertir un int en chaine pour inclure
cette chaine dans une autre chaine affichée dans une messagebox. l'Api
Msgbox a son paramètre Caption du type LPCTSTR.
Ou peut être est-il possible d'utiliser un autre type de string ? puis de la convertir en
LPCTSTR ?
zippro4012
Messages postés216Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention26 février 20061 18 mai 2005 à 08:49
Merci, ca marche impec.
Mais j'ai des autres questions :
Existe-t-il et quels sont les fonctions permettant de rechercher dans
une chaine, extraire la droite, la gauche ou le milieu de la chaine ?
(En fait les fonction équivalentes a Instr, Left, Right, Mid en Visual
Basic)
Pour contacéner deux chaine, est-il obligatoire d'utiliser l'api lstrcat ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 18 mai 2005 à 09:20
Avec MFC tu as les CString qui fournissent TrimRight, TrimLeft, Mid...
Pour concaténer 2 chaines :
- avec des classes du genre sitring, CString... l'opérateur + est redéfini donc on peut juste faire str1+str2.
- avec des char* purs, il faut utiliser strcat, lstrcat et les dérivés en faisant gaffe aux dépassements de buffers.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 18 mai 2005 à 11:12
MFC : Microsoft Fundation Class : encapsulation de l'API Win32 dans des classes, utilisable uniquement avec Visual Studio.
Donc avec Dev-cppn, pas de MFC ni de CString
en C++, il y a la classe string du namespace std qui fait le même genre de truc.