Une conversion bien utile, mais dont je n'ai pas encore la solution ...

Signaler
Messages postés
26
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
21 septembre 2007
-
Messages postés
26
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
21 septembre 2007
-
Salut salut!
bon voilà, j'ai des petits soucis de conversion en ce moment qui m'empêche d'avancer dans mon projet... :sad)
en fait j'ai une petite fonction qui prend en paramètre deux char* mais ces deux variables je voudrais y mettre le texte de l'une de mes textBox (j'utilise visual c++ .net 2003, projets managés, windows forms)

mon problème se résume donc à la conversion :
System::String __gc * -> char *

(bien sûr le sens inverse pourrait m'intéresser ainsi que beaucoup d'autre internautes)

merci de l'aide que l'on pourra m'apporter!

3 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
116
Tu as essayé de faire un cast :

(char*) NOM_DE_LA_VARIABLE ?

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Messages postés
26
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
21 septembre 2007

c'était pas bête, mais j'y avais déjà pensé et non malheureusement ce n'est apparemment pas aussi facile ...

voici le message d'erreur après la compilation :

error C2664: 'creer_file' : impossible de convertir le paramètre 1 de 'System::String __gc *' en 'char *'
Impossible de convertir un type managé en type non managé

(la fonction creer_file prend deux paramètres qui sont des char*)
Messages postés
26
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
21 septembre 2007

je viens de trouver la solution sur le site MSDN :

using namespace System::Runtime::InteropServices;

char* str1 = (char*)(void*)Marshal::StringToHGlobalAnsi(txtDepart->Text);
Marshal::FreeHGlobal(str1);

voilà pour ceux que ça peut interesser, ça fonctionne très bien dans mon cas, et voilà le lien pour les autres possibilités :

http://support.microsoft.com/default.aspx?scid=kb;EN-US;311259