IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

Afficher un wxChar * dans un wxStaticText


Sujet :

wxWidgets

  1. #1
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut Afficher un wxChar * dans un wxStaticText
    Bonjour à tous,

    M'essayant toujours à wxWidget, je me suis intéressé au sample "Client".
    Le client envoie un buffer vers un serveur qui répond en renvoyant ce même buffer.
    Il est alors capté par le client comparé au précédent et indique une erreur ou non.
    Le code ressemble à ça donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     const wxChar *buf1;
      wxChar       *buf2;
      unsigned char len;
     
    m_sock->SetFlags(wxSOCKET_WAITALL);
     
      buf1 = _("Test string (less than 256 chars!)");
      len  = (unsigned char)((wxStrlen(buf1) + 1) * sizeof(wxChar));
      buf2 = new wxChar[wxStrlen(buf1) + 1];
     
      m_text->AppendText(_("Sending a test buffer to the server ..."));
      m_sock->Write(&len, 1);
      m_sock->Write(buf1, len);
      m_text->AppendText(m_sock->Error() ? _("failed !\n") : _("done\n"));
     
      m_text->AppendText(_("Receiving the buffer back from server ..."));
      m_sock->Read(buf2, len);
      m_text->AppendText(m_sock->Error() ? _("failed !\n") : _("done\n"));
     
      m_text->AppendText(_("Comparing the two buffers ..."));
      if (memcmp(buf1, buf2, len) != 0)
      {
        m_text->AppendText(_("failed!\n"));
        m_text->AppendText(_("Test 1 failed !\n"));
      }
      else
      {
        m_text->AppendText(_("done\n"));
        m_text->AppendText(_("Test 1 passed !\n"));
      }
    Moi, j'ai tout simplement cherché à afficher le contenu du buffer retour dans un wxStaticText et tout ce que j'ai obtenu, c'est un jolie ligne de petits carrés.

    J'ai tenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    statText->SetLabel(wxString(buf2,wxConvLibc ))
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    statText->SetLabel(buf2)
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    statText->SetLabel(*buf2)
    Mais je n'obtiens toujours que des petits carrés, sauf pour le dernier où il n'y en a qu'un seul.

    Suis sur que c'est un truc tout bête mais je n'ai pas trouvé alors merci à vous.


  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Salut,

    J' ai testé et je n' ai rencontré aucun probleme...

    Voici le sample que j' ai modifié :
    http://and1hotsauce.free.fr/developpez/client.cpp

    Ca affiche bien en dessous du wxTextCtrl : Test string (less than 256 chars!)

    Maintenant si tu nous montre ton code, p-e que je pourrais voir le problème..

    A+, And1HotSauce ;-)

  3. #3
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    J'ai regardé ton code et à mon grand étonnement tu as raison, il fonctionne.

    Alors le truc c'est que pour voir un peu comment ça marchait, j'avoue, j'ai été vilain. je ne l'ai pas connecté au server sample mais à de "vrai" serveurs pour voir un peu ce qui était reçu depuis ceux ci.

    Il s'agit donc, par exemple, de se connecter à www.google.com sur le port 80, ou bien à un serveur ftp et autres serveurs du genre.

    Ayant la même réponse ( des petits carrés) j'en ai conclus que c'était ma manière d'afficher qui était en cause.

    Mais alors, comment "décoder" les messages renvoyés par ces serveurs??

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Salut,

    Je dois t' avouer que je n' ai jamais utilisé ces classes de wxWidgets (excepté ce sample que j' ai testé et modifié tantot) par contre j' ai déjà utilisé les sockets en C. Le principe semble être le même. En principe, il n' y a rien a décoder

    Par contre comment peux-tu tester avec google ? Il faut que le programme server soit lancé sur google...
    De même comment peux-tu tester avec un ftp ? ca doit etre pareil, le programme server doit etre lancé sur le serveur ftp... A moins que tu aies un dédié, je ne vois pas comment c' est possible

    A+, And1HotSauce ;-)

  5. #5
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    Excuse, j'ai oublié de préciser.
    Je n'envoie rien sur le serveur. Je ne fais que connecter la socket et écouter ce que dis le serveur.
    Donc je connecte, j'attend qu'il y ait quelque chose dans à lire, puis je lis.
    Et là j'ai des petits carrés!

    Le code est pratiquement le même, avec l'envoie de buffer en moins et la sélection du port de connection en plus.

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Mais est-ce que le programme server est lancé sur le serveur concerné ?

  7. #7
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    Non non,
    Je lance rien sur google

    Je me connecte juste et j'écoute ce qu'il raconte. C'est déjà un serveur internet google donc on s'y connecte via socket normalement. C'est ce que je fais, et j'écoute le retour.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 12h16
  2. Réponses: 3
    Dernier message: 28/01/2004, 15h55
  3. Afficher le caractere '%' dans Flash
    Par jeffbobo dans le forum Flash
    Réponses: 6
    Dernier message: 11/12/2003, 18h40
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 01h38
  5. Réponses: 2
    Dernier message: 10/06/2002, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo