Conversion int -> LPCTSTR [Résolu]

zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 17 mai 2005 à 18:06 - Dernière réponse : zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention
- 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) ?



Merci de vos réponses.
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 17 mai 2005 à 19:07
3
Merci
donc itoa ou sprintf pour convertir en char[] :
char szVal[16];
int val = 67;
itoa(val, szVal, 10);
ou
sprintf(szVal, "%d", val);

AfxMessageBox(szVal);

Et je rappel que LPCTSTR est un typedef de windows.h de "const char*"

Merci ymca2003 3

codes-sources a aidé 87155 internautes ce mois-ci

Commenter la réponse de ymca2003
Meilleure réponse
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 18 mai 2005 à 12:17
3
Merci
#include

std::string

ou alors mettre 'using namespace std;' au début et utiliser directement string.

Merci ymca2003 3

codes-sources a aidé 87155 internautes ce mois-ci

Commenter la réponse de ymca2003
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 17 mai 2005 à 18:35
0
Merci
C'est la solution usuelle pourtant, ton problème doit venir d'ailleurs
Commenter la réponse de vecchio56
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 17 mai 2005 à 18:38
0
Merci
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);
Commenter la réponse de ymca2003
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 17 mai 2005 à 18:39
0
Merci
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."

Commenter la réponse de zippro4012
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 17 mai 2005 à 18:44
0
Merci
C'est pour cela que j'ai dit que le contexte est important. Quelle fonction de l'API nécessite que tu fasses un cast ?
Commenter la réponse de ymca2003
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 17 mai 2005 à 18:59
0
Merci
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 ?


Commenter la réponse de zippro4012
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 18 mai 2005 à 08:49
0
Merci
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 ?



Merci encore.

Commenter la réponse de zippro4012
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 18 mai 2005 à 09:20
0
Merci
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.
Commenter la réponse de ymca2003
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 18 mai 2005 à 11:08
0
Merci
Comment peut on et comment utiliser CString en Dev-C++ ?

Il faut définir quelque chose, puisque je peux actuellement pas l'utiliser (c'est inconnu par le compilateur).

Que sont les MFC exactement ?



Sinon, strcat fonctionne parfaitement.



J'ai aussi entendu parler d'une classe String pour gérer les chaines ?
Commenter la réponse de zippro4012
ymca2003 2070 Messages postés mardi 22 avril 2003Date d'inscription 3 juillet 2006 Dernière intervention - 18 mai 2005 à 11:12
0
Merci
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.
Commenter la réponse de ymca2003
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 18 mai 2005 à 12:14
0
Merci
Merci bien. Encore une dernière question :

Je ne trouve pas la classe string. Mais ce cache donc-t-elle ? Dans un
header file ? Ou ne peux on également pas l'utiliser avec Dev-cpp ?

Commenter la réponse de zippro4012
zippro4012 218 Messages postés mardi 15 juin 2004Date d'inscription 26 février 2006 Dernière intervention - 18 mai 2005 à 13:29
0
Merci
C'est bon ça marche.
Merci encore.
Commenter la réponse de zippro4012

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.