Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > wxWidgets
wxWidgets Forums d'entraide pour la programmation wxWidgets en C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 10h32   #1
zuzuu
Membre régulier
 
Inscription : avril 2004
Messages : 574
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2004
Messages : 574
Points : 74
Points : 74
Par défaut Conversion de wxString en const char *

Bonjour,

Je suis en train de m'arracher les cheveux... pour tenter de faire cette opération "simpliste"...

Je suis passée sur le site de wxWidget :
http://docs.wxwidgets.org/2.8/wx_wxs...xstringgetdata

J'ai essayé "moulte" méthode mais rien n'y fait !
à l'aide de cette fonction par exemple :
Code :
m_textCtrl4->GetValue().ToAscii()
Je n'obtiens qu'une chaine très bizarre !

Et du coup si je veux réafficher cette value dans une autre chaine de la manière suivante :

Code :
1
2
3
4
5
6
const char * l_data = m_textCtrl5->GetValue().ToAscii();  
 
std::ostringstream l_os;
l_os << "Ma donnée" << "#" << l_data << "#";
wxString l_str (l_os.str().c_str(), wxConvUTF8);
m_staticText9->SetLabel(l_str);
Il n'y a plus rien qui s'affiche du tout dans mon m_staticText9.
Alors que si je test en mettant :
Code :
const char * l_data = "Test";
Je vois bien ma chaine s'afficher...

Sauriez vous comment être sur de récupérer un const char * correct depuis un wxString ?
zuzuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 00h30   #2
wxXav
Membre confirmé
 
Avatar de wxXav
 
Homme Xavier Perrissoud
Développeur amateur
Inscription : décembre 2008
Messages : 135
Détails du profil
Informations personnelles :
Nom : Homme Xavier Perrissoud
Localisation : France

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : décembre 2008
Messages : 135
Points : 226
Points : 226
Hello

En regardant la doc officielle de wxString::ToAscii, on peut lire ceci :
Citation:
Note that this conversion only works if the string contains only ASCII characters. The mb_str method provides more powerful means of converting wxString to C string.
Tu peux donc utiliser directement cette méthode pour la suite :
Code :
l_os << "Ma donnée" << "#" << m_textCtrl4->GetValue().mb_str() << "#";
Je n'ai pas testé, mais je pense (très fort) que ça doit marcher.

@+
Xav'
wxXav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 06h57   #3
Buzz57
Invité de passage
 
Homme Laglasse Michel
administrateur Unix
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Laglasse Michel
Localisation : Belgique

Informations professionnelles :
Activité : administrateur Unix

Informations forums :
Inscription : août 2011
Messages : 3
Points : 3
Points : 3
Salut,

Voici comment je fais :

m_textCtrl4->GetValue().char_str()

ou

m_textCtrl4->GetValue().char_str(wxConvUTF8) si l'application est censée gérer l'unicode.

A+
Buzz
Buzz57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 09h21   #4
zuzuu
Membre régulier
 
Inscription : avril 2004
Messages : 574
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2004
Messages : 574
Points : 74
Points : 74
J'avais essayé :
Code :
m_textCtrl4->GetValue().mb_str(wxConvUTF8)
et ça ne fonctionnait pas.

J'essaye vos suggestions lundi !
zuzuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h56.


 
 
 
 
Partenaires

Hébergement Web