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
A voir également:

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