Bonjour,
Je souhaiterais afficher une variable sur l'écran, j'utilise habituellement :
guienv->addStaticText(L"Le texte que je souhaite afficher",rect<int>(10,10,100,22), true);
Mais si j'attribue, par exemple:
char *Welcomemsg="Je vous souhaite la bienvenue";
Je ne peut pas utiliser la fonction "addStaticText" à cause du "L"...
Comment puis-je faire?
Hors ligne
La fonction prend en entrée des chaines de caractère UNICODE au format 'wchar_t'.
Donc, il faut que ta chaine soit compatible.
Soit tu écris donc plutôt:
wchar_t *Welcomemsg= L"Je vous souhaite la bienvenue";
tu peux passer aussi par des déclarations du type:
irr::gui::IGUIStaticText * myText;
myText->setText("test text");
par contre, si cela viens d'un soucis de convertions char vers wchar_t, alors il faut je pense
d'abord passer par une fonction de convertion entre les formats de caractères...
Il me semble qu'il existe une fonction qui s'appele mbstowcs, qui permet une conversion char->wchar_t.
un code comme celui-ci devrait marcher:
char *mtext = "un texte au pif";
wchar_t welcome[256];
mbstowcs(welcome, mtext, strlen(mtext));
guienv->addStaticText( welcome, rect<int>(10,10,266,28), true);
A++
Dernière modification par tmyke (12-10-2008 17:40:38)
Hors ligne
Merci pour la solution. Ca marche presque parfaitement, un petit soucis persiste :
Hors ligne
Williwaw :
Merci pour la solution. Ca marche presque parfaitement, un petit soucis persiste :
http://img507.imageshack.us/my.php?imag … harjh3.png
En fait, je pense que cela vient d'un soucis de retour du chariot. Tu n'as pas de fin de chaine, et donc il te restitue
des caractèrse derrières qui n'ont pas lieu d'être jusqu'a atteindre une fin de ligne éventuelle.
En fait, dans le code que je donne plus haut, une modif comme suit pourrait peut-être résoudre le soucis je pense:
char *mtext = "un texte au pif";
wchar_t welcome[256];
mbstowcs(welcome, mtext, strlen(mtext)+1);
guienv->addStaticText( welcome, rect<int>(10,10,266,28), true);
Hors ligne
Ca fonctionne parfaitement, merci beaucoup.
Hors ligne