Convertir un string en LPCTSTR

sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003 - 18 juil. 2003 à 13:46
sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003 - 18 juil. 2003 à 17:32
Comment convertir un type string en un type LPCTSTR correctement ???

merci

11 réponses

JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
18 juil. 2003 à 14:10
m_CString.Getbuffer(0); non? je sais plus exactement :p mais bon si tu est courageux, ya la soluce dans ma source de carnet d'adress
JackosKing For EvEr
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
18 juil. 2003 à 14:37
Si ton objet string est l'objet string de la STL, il faut utiliser la méthode c_str().

Kaid - kaid.fr.st
0
sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003
18 juil. 2003 à 14:47
ça c'est ce que j'appel la methode pas correcte, le compilateur ne bronche pas mais c'est pas top du tout. C'est à dire que si l'on utilise la variable de type LPCTSTR apres cette conversion dans une fonction et bien ça ne marche pas,
donc quelqu'un a t il une solution ???

merci
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
18 juil. 2003 à 14:51
LPCTSTR est un pointeur constant vers une chaine de caractères ASCII ou Unicode suivant la compilation.

std::string::c_str() retourne un pointeur constant vers une chaine de caractères.

Donc il n'y a aucun problème à moins que le type Windows soit mal utilisé ou que tu travailles en Unicode.

Kaid - kaid.fr.st
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003
18 juil. 2003 à 15:19
je vais etre plus precis:

le compilateur c'est visual C++

je dois envoyer par ftp des fichiers, j'utilise une fonction appelé FtpPutFile qui en parametre des LPCTSTR

quand j'ecris le code suivant ça marche :

LPCTSTR fichierO = "d:\\popo\\popo.mp3";
LPCTSTR fichierI = "popo.mp3";

resultatFtp = FtpPutFile ( hFTPSession, fichierO, fichierI, FTP_TRANSFER_TYPE_ASCII, NULL);


et quand j'ecris le code suivant ça ne marche pas du tout:

string sfichierO = "d:\\popo\\popo.mp3";
string sfichierI = "popo.mp3";

LPCTSTR fichierO = sfichierI.c_str();
LPCTSTR fichierI = sfichierO.c_str();

resultatFtp = FtpPutFile ( hFTPSession, fichierO, fichierI, FTP_TRANSFER_TYPE_ASCII, NULL);

0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juil. 2003 à 15:31
et quel besoin de s'emmerder avec des string ???
BruNews, ciao...
0
sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003
18 juil. 2003 à 15:53
parce que avant d'envoyer la variable LPCTSTR je fais des manipulation avec l'operateur + de string pour former la chaine de caractere desirée (url + nomFichier)

sinon y a t il moyen de faire la meme chose directement avec des LPCTSTR, du style:

LPCTSTR a;
LPCTSTR b;
LPCTSTR c =  a+b;
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
18 juil. 2003 à 15:58
Je pense que c'est une simple erreur de copier-coller le fait que tu aies inverser les fichiers 'O' et 'I' dans le second exemple.
Les chaines qu'il faut passer à cette function doivent certainement être des chaines Unicode, voir tu coté de MultiByteToWideChar().

Kaid - kaid.fr.st
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juil. 2003 à 15:59
travaille avec du char[size] et strcat, strcpy.
Sera bien + rapide, exe moins gros et plus de prob de conversion pour LPCSTR.
BruNews, ciao...
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
18 juil. 2003 à 16:00
Non, tu ne peux faire ca qu'avec des objets.

Kaid - kaid.fr.st
0
sampq Messages postés 20 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 24 juillet 2003
18 juil. 2003 à 17:32
merci de vos reponse, si j'ai le courage je change tous les string en char* (parce que c'est long à faire),

pour l'instant je fais les conversion suivantes:

string -> char* -> LPCSTR, et ça marche !!!!!!
0
Rejoignez-nous