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

SDL Discussion :

Problème de passage d'argument a un thread


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Par défaut Problème de passage d'argument a un thread
    Bonjours je travail en ce moment sur un serveur mulltijoueur. Pour chaque connection je dois créer un tread et passer en argument le pointeur de la classe du joueur.
    J'ai fais un petit test sur le passage d'une classe puis l'affichage d'une donne membre de cette classe.
    Mais l'affichage est pas bon. Par contre si j'encapsule la donne membre a partir du thread la ça fonctionne.


    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
    32
    33
    class test
    {
        public:
       int temp;
     
    };
     
    int thread_func(void *unused)// fonction thread
    {
     
     
            while(1) // boucle infini
            {
     
                test *temp2 = reinterpret_cast<test*>(unused);
                // temp2->temp=7;                    La ça marche
                Font_Number(300,340,screen,temp2->temp);
     
     
            }
     
            return(0);
    }
     
    int main ( int argc, char** argv )
    {
        test * tempi;
        tempi= new test();
        tempi->temp=100;
        Thread = SDL_CreateThread(thread_func, &tempi);
     
    ...
    }

    merci de votre aide

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu passes l'adresse de tempi, tu vas donc récupérer dans thread_func un test** et non un test*. Inutile donc de passer l'adresse, puisque tu as déjà un pointeur.

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Par défaut
    Que je suis bête!!! Merci beaucoup ça fesai un moment que je cherchai.

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

Discussions similaires

  1. Passage d'arguments a un thread
    Par Invité dans le forum Linux
    Réponses: 3
    Dernier message: 07/04/2015, 18h49
  2. Probleme de passage d'arguments dans un thread
    Par TheBAT dans le forum POSIX
    Réponses: 4
    Dernier message: 05/02/2007, 19h58
  3. [TASM] Passage d'argument à une macro
    Par sorry60 dans le forum Assembleur
    Réponses: 13
    Dernier message: 23/04/2005, 18h22
  4. [web] passage d'arguments à un CGI
    Par ma2th dans le forum Web
    Réponses: 4
    Dernier message: 20/08/2004, 12h18
  5. passage d'argument à la procédure main ()
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 01/09/2003, 19h59

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