Voila j'ai une variable de type Cstring que je souhaiterai copier dans un char *, est ce possible?
Sinon quel moyen ais je pour contourner ce probleme?
Voila j'ai une variable de type Cstring que je souhaiterai copier dans un char *, est ce possible?
Sinon quel moyen ais je pour contourner ce probleme?
C'est sur la FAQ :
http://c.developpez.com/faq/vc/?page=Conversions
J'ai pas trop compris comment cela fonctionner
Voila mon bout de programme:
j'aimerai mettre strOpenCap dans *argv.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3CString strOpenCap; char **argv;
Il faut que j'utilise strtol?
argv ... comme les param�tres de ta fonction main ? Pourquoi voudrais-tu mettre quelque chose dedans ?
En fait, tu dois allouer un espace m�moire �gal � la longueur de la cha�ne +1, puis tu appelles la m�thode qui permet de retourner un const char* et tu fais un strncpy.
Mais pourquoi dois-tu faire cela ?
en fait j'ai une fonction qui me permet d'ouvrir un fichier; qui a en parametre argv, qui est le chemin pour acceder au fichier.
La je ss en train de r�aliser une IHM. J'ai cr�er un Browser qui me renvoi dans un Cstring le chemin du repertoire ou mon fichier se trouve.
Et je souhaite donc avant d'appeller ma fonction placer
oups...
Et je souhaite donc avant d'appeller ma fonction placer la variable Cstring dans mon *argv.
Je vais essayer ce que vous m'avez dit.
J'ai touv� un truc dans MSDN:
Par contre je sais pas pourkoi, qd j essai de l'appliquer il me dit que
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 // Convert to a char* const size_t newsize = 100; char nstring[newsize]; strcpy_s(nstring, orig); strcat_s(nstring, " (char *)"); cout << nstring << endl;ne sont pas d�fini.
Code : S�lectionner tout - Visualiser dans une fen�tre � part strcpy_s et strcat_s
J'ai pourtant bien inclus le string.h.
Je vais chercher encore
http://www.developpez.net/forums/sho...d.php?t=146227
regarde mon dernier post
suis pass� directement d'un Cstring � un a char * en une ligne
++
salut,
si argv est le pointeur des arguments d'un programme ,c'est une tr�s mauvaise id�e de vouloir ecrire dedans....
c'est une zone allou�e en memoire quid de sa taille initiale ?
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
En fait je ss en train de passer un programme en C en une IHM en C++.
J'utilise les MFC.
D�ja en C j'avais mon main qui d�marer comme ceci:
Dans mon IHM MFC j'aimerai appell� mes fonctions depuis un bouton OK que j'ai cr�er.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 int main(int argc, char **argv) {.... capt_off(argc,argv); ... }
Ais-je le droit de faire ca:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 void CSnifferDlg::OnOK(int argc, char **argv) {
voir ce post de la faq:
http://c.developpez.com/faq/vc/?page...GetCommandLine
dans le prog MFC tu auras la ligne de commande ...
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Je ne comprends pas tres bien la Faq.
Dois-je rajouter beaucoup de chose?
Pourquoi ceci ne fonctionne pas:
dans le .h
dans le .cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 virtual void OnOK(int argc, char **argv);
Cela compile sans erreur mais plante lors de l'appui sur le bouton OK
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 void CSnifferDlg::OnOK(int argc, char **argv)
alors que ceci fonctionne
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 virtual void OnRangeUpdateRadio(UINT nID);
Code : S�lectionner tout - Visualiser dans une fen�tre � part void CSnifferDlg::OnRangeUpdateRadio(UINT nID)
Pour cloturer (pour ma part) cette discussion
la conversion Cstring-> char* j'ai suivi les conseils d'isidore:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 CString strOpenCap; char *adresse=(char*)LPCTSTR(strOpenCap);
salut,
faire tomber le cast est dangereux !!!
ce type de code est a proscrire.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 char *adresse=(char*)LPCTSTR(strOpenCap);
si l'objet CString renvoie un pointeur constant ce n'est pas pour rien .
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
honnetement , je capte que dalle � vos truc.
et la faq est vraiment pas compr�hensible pour un d�butant, pour moi c plus un pense bete pour les pro, parce qu'il manque des explication d�taill�es ligne par lignes
si l'objet CString renvoie un pointeur constant ce n'est pas pour rien .
->je savais meme pas que que cstring renvoyait un pointeur, et je sais meme pas c quoi un LPCTSTR chais pas quoi, j'ai trouv� une ligne de code sur le net, �a a march� c tt ce qui compte lolzz![]()
C'est LPCTSTR qui renvoie un pointeur, c'est une fonction qui prend un CString et qui renvoie un pointeur vers un const char*. LA FAQ, c'est spur que c'est bien, mais la doc, c'est toujours plus exhaustif.
tu voulais bien sur dire que LPCTSTR est un type qui, l�, sert � caster la surcharge const char* du CString
C'est vrai que j'ai pas v�rifi�...
Apparemment, �a a l'air d'�tre une macro de conversion vers un const char*, mais j'ai du mal � trouver sa d�finition...
D'ailleurs, il ne faudrait pas utiliser (char*), mais plut�t un static_cast ou qqch du genre.
Partager