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

C++ Discussion :

appel d'une methode qui ne marche pas


Sujet :

C++

  1. #1
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut appel d'une methode qui ne marche pas
    bonjours,

    lorsque je fait un avec socket du type WxSocket, le compilateur me retourne :
    request for member `Destroy' in `socket', which is of non-class type `SOCKET ()(int, int, int)'
    le pb, c'est que dans la doc, il est dit :
    wxSocketBase:estroy


    bool Destroy()
    Destroys the socket safely. Use this function instead of the delete operator, since otherwise socket events could reach the application even after the socket has been destroyed. To prevent this problem, this function appends the wxSocket to a list of object to be deleted on idle time, after all events have been processed. For the same reason, you should avoid creating socket objects in the stack.
    Destroy calls Close automatically.
    Return value Always true.
    donc, la serie de parametres int, je la comprend pas...
    d'autant plus que j'ai deja utilisé cette fonction sans pb...

    ps : cette fois ci, ce n'est pas un pb de string non initialisé, j'espere :'(

    d'apres vous, est-ce que je doit appeler cette fonction uniquement dans mon objet qui gere les events? (cf : la partie moins nore dans la citation)

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu as dû déclarer ton socket comme une fonction et non comme une instance. Tu peux nous montrer cette déclaration ?

  3. #3
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    Citation Envoyé par Loulou24
    Tu as dû déclarer ton socket comme une fonction et non comme une instance. Tu peux nous montrer cette déclaration ?
    dans mon .h :
    dans mon .cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     //le socket  enverra les images
      socket = event.GetSocket();
    ...
    avec :
    wxSocketEvent::GetSocket


    wxSocketBase * GetSocket() const Returns the socket object to which this event refers to. This makes it possible to use the same event handler for different sockets.

    mon appli est decomposée comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool vncPeuThreadeFrmApp::OnInit()
    {
        vncPeuThreadeFrm *myFrame = new  vncPeuThreadeFrm(NULL);
      ...
    }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class vncPeuThreadeFrm : public wxFrame
    avec donc, on va dire que c'est mon objet principale.
    entre autre, il gere les evenements de tous els objets wxWidgets.
    lorsque ma socket servuer perd sa connection avec la spcket clients, je faisait totu simplement un masi, depuis, j'ai deporté ma variable socket dans un objet.
    donc, au lieu de cela, j'appele une fonction de cet objet (appelé "destroy()" a cause des sex pistols) qui se charge de faire cet appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /*
     * detruit la socket
     */
    void mySocketClient::Destroy()
    {
     socket->Destroy();
    }
    voila, la seule difference est donc ceci.
    (la varialbe socket est un variable membre de MySocketServeur)
    et la...
    je vient de trouver mon erreure, merci :'(

    je m'etait trompé, a l'origine je l'avait créée dans MySocketClient, et , par copier collé, je l'ai mis dans MySocketServeur

    masi elle s'appellait toujours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mySocketClient::Destroy()
    donc voila...

    merci :'(

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Il n'y a aps d'allusion à SOCKET dans la doc ?

  5. #5
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Utilise un autre nom que 'socket'
    L'itération est humaine; la récursion, divine.

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

Discussions similaires

  1. une application qui ne marche pas de la meme facon
    Par Msysteme dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/06/2010, 15h59
  2. [MySQL] Une requête qui ne marche pas sur tous les enregistrements
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/04/2010, 13h20
  3. redirection sur une action qui ne marche pas
    Par nesbla dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/08/2006, 20h16
  4. [JDOM] Une méthode qui ne marche pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/05/2006, 16h10

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