[C++] Windows Form : textBox / System::String

Résolu/Fermé
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 16 août 2009 à 23:10
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 17 août 2009 à 17:07
Bonjour,

Je débute avec Visual Studio, et je travaille actuellement sur un projet Windows Form.
Je voudrais lire des mots dans une liste, et les écrire les uns aux dessous des autres dans un textBox, cependant je n'arrive pas à le faire à cause de l'utilisation de System::String

Voici des morceaux de mon code :
std::list<std::string> dico;
std::list<std::string>::const_iterator i(dico.begin()), n(dico.end());

bool EstAnagramme(System::String ^s1, std::string s2) {return true;}

while (i!=n)
{
	if (EstAnagramme(this->textBox1->Text,*i))
	{
		this->textBox1->AppendText(*i); // problème ici !
		this->textBox1->AppendText("\n"); 
	}
	i++;
}
J'ai essayé de faire std::list<System::String> mais sans succès.
Je n'arrive pas à transformer System::String ni en std::string ni en char*

Savez-vous comment résoudre mon problème ? Si oui, merci d'avance !

Question annexe, à quoi sert l'accent circonflexe que je suis obligé de mettre dans les paramètres de EstAnagramme ?
A voir également:

6 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 août 2009 à 08:26
Salut.
Le prob-ème c'est que là tu ne fais pas du vrai C++, mais du visual. L'accent circonflexe c'est quelque chose qui n'existe pas en ISO C++ utiliser comme ça.
Ensuite, system::String, c'est pareil, c'est du Visual. Regarde la documentation, il doit exister une manière de passer de std::string à system::String, si la classe est bien faite en tout cas.
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
17 août 2009 à 14:27
Bon j'ai trouvé mais c'est encore loin d'être intuitif pour moi...
if (EstAnagramme(this->textBox1->Text,*i))
{
	System::String^ s=gcnew System::String(((*i)+"\n").c_str());
	this->textBox2->AppendText(s);
	cpt++;
}
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 août 2009 à 16:01
C'est ça de vouloir faire du Visual avant d'apprendre l'ISO C++.
En fait, system::string ne doit pas connaitre std::string... donc tu passe par c_str() c'est à dire "const char*"
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
17 août 2009 à 16:08
C'est pas que je veux absolument faire du Visual avant de l'ISO C++.
Je voulais améliorer un de mes vieux projet (en Pascal/Delphi) en le réécrivant en C++
Sauf que pour faire des fenêtres, des boutons, etc. je ne vois pas ce que je peux utiliser d'autre que Visual
0

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

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 août 2009 à 17:06
QT +QtCreator !!
L'essayer c'est l'adopter. ;-)
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
17 août 2009 à 17:07
Alors je vais regarder parce que Visual Studio j'ai du mal...
0