#0 

12-10-2008 16:46:23

Williwaw
Petit nouveau
Date d'inscription: 12-10-2008
Messages: 3

Bonjour,

Je souhaiterais afficher une variable sur l'écran, j'utilise habituellement :

Code:

guienv->addStaticText(L"Le texte que je souhaite afficher",rect<int>(10,10,100,22), true);

Mais si j'attribue, par exemple:
   

Code:

char *Welcomemsg="Je vous souhaite la bienvenue";

Je ne peut pas utiliser la fonction "addStaticText" à cause du "L"...
Comment puis-je faire?

Hors ligne


#1 

12-10-2008 17:38:19

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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:

Code:

    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)


Force et sagesse...

Hors ligne


#2 

14-10-2008 16:36:35

Williwaw
Petit nouveau
Date d'inscription: 12-10-2008
Messages: 3

Merci pour la solution. Ca marche presque parfaitement, un petit soucis persiste :

Hors ligne


#3 

14-10-2008 18:41:38

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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:

Code:

    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);

Force et sagesse...

Hors ligne


#4 

15-10-2008 13:17:10

Williwaw
Petit nouveau
Date d'inscription: 12-10-2008
Messages: 3

Ca fonctionne parfaitement, merci beaucoup.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
77 invités en ligne
Aucun membre connecté
RSS Feed