Problème pour stoker une string dans un char*

Faroww Messages postés 1 Date d'inscription jeudi 5 janvier 2012 Statut Membre Dernière intervention 5 janvier 2012 - 5 janv. 2012 à 14:40
mosaidrd Messages postés 13 Date d'inscription samedi 18 avril 2009 Statut Membre Dernière intervention 12 janvier 2012 - 6 janv. 2012 à 20:13
Salut,

Alors voici mon problème j'utilise une OpenFileDialog (Parcourir)pour permette a l'utilisateur de choisir un fichier. Je récupéré le patch du fichier dans:
               System::String^ Patch;

                Parcourire->ShowDialog();
Patch = Parcourire->FileName; 
textBox1->Text =Patch; 

Le chemin complet s’affiche bien dans mon textbox mais pour la suite du programme jais besoin d'utiliser le patch du fichier via un char * seulement impossible de convertir ce System::String en char* et le code suivant ne fonctionne pas car il n'ouvre jamais le bon fichier :( (jais l’impression que la variable Patchchar contient n’importe quoi.

//Conversion du System::string en char *  pour le fopen
pin_ptr<const wchar_t> wch = PtrToStringChars(Patch);
size_t convertedChars = 0;
size_t  sizeInBytes = ((Patch->Length + 1) * 2);
errno_t err = 0;
Patchchar = (char *)malloc(sizeInBytes);


Merci d'avance

7 réponses

BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
5 janv. 2012 à 15:22
Hello,
Regarde ce code peut-être.
Une question: as-tu vraiment besoin de coder en C++ managé? Pourquoi ne pas seulement utilisé du C# ou bien du C++ simplement?


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
mosaidrd Messages postés 13 Date d'inscription samedi 18 avril 2009 Statut Membre Dernière intervention 12 janvier 2012
5 janv. 2012 à 22:39
salut si tu parle de string de la biblio STL de c++
alors c'est facile
parce que la class string a une fonction membre qui return la string en tant que const char*
//code:
#include
#include<string>
using namespace std;
main()
{
string mystring("sssssssssss");
cout<<mystring.c_str()<<endl;
}

//exemple de creaiton de dossier
//CreatDirectoryA(mystring.c_str(),0);
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
6 janv. 2012 à 09:01
@mosaidrd: à mon avis, il ne parle pas des std::string mais bien des System::String


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
6 janv. 2012 à 12:03
@mosaidrd: En plus tu lui files une exemple plein de mauvaise pratique...

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0

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

Posez votre question
mosaidrd Messages postés 13 Date d'inscription samedi 18 avril 2009 Statut Membre Dernière intervention 12 janvier 2012
6 janv. 2012 à 14:10
quelle mauvaise pratique ? je voulais just etre precis dans ma reponse :)
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
6 janv. 2012 à 14:16
@mosaidrd:
1) Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
2) string est déjà inclus dans iostream
3) main() => int main()
4) Oublie du return 0

Quasiment 4 mauvaises pratiques en 4 lignes, chapeau !

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
mosaidrd Messages postés 13 Date d'inscription samedi 18 avril 2009 Statut Membre Dernière intervention 12 janvier 2012
6 janv. 2012 à 20:13
c vrai
mauvaise habitude je croix :)
c trop de toujour tapper le std::
merci @CptPingu .
0
Rejoignez-nous