Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > API graphiques > SDL
SDL Forum d'entraide sur l'API SDL. Avant de poster -> FAQ SDL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/05/2012, 00h30   #1
Alex-L
Membre habitué
 
Avatar de Alex-L
 
Homme Alexandre
Étudiant
Inscription : janvier 2011
Messages : 155
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 155
Points : 141
Points : 141
Par défaut Problème de mise en place de thread

Bonjour,
J'essaye en vain d'instaurer un système de thread dans mon code mais j'ai une belle erreur à la compilation :

Code :
error:*argument*of*type*'int*(mainwindow::)(void*)'*does*not*match*'int*(*)(void*)'|

Voici ma fonction thread :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
int mainwindow::my_thread(void *data)
{
    while(quitThread == false)
    {
        SDL_BlitSurface(feu1, NULL, screen, &positionFond);
        SDL_Delay(1000);
        SDL_BlitSurface(feu2, NULL, screen, &positionFond);
        SDL_Delay(1000);
        SDL_BlitSurface(feu3, NULL, screen, &positionFond);
    }
 
    return 0;
}

et la déclaration de SDL_thread dans une autre fonction :

Code :
1
2
SDL_Thread *thread;
thread = SDL_CreateThread(my_thread, NULL);

Merci
Alex-L est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2012, 00h56   #2
nouknouk
Modérateur
 
Avatar de nouknouk
 
Homme
Inscription : décembre 2006
Messages : 1 612
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 1 612
Points : 1 781
Points : 1 781
Salut,

de par le message de l'erreur, je pense à vue de nez que ton souci proviendrait du fait que ta fonction est en fait une méthode (ie. une fonction définie dans une classe), pas ce qu'attend SDL_CreateThread(), à savoir une fonction 'classique', définie en dehors d'une classe, comme n'importe quelle fonction en langage C.

Les fonctions et les méthodes sont en effet deux concepts différents en C++, car (pour faire simple) la méthode englobe une sorte d'argument supplémentaire 'caché' (en tout cas par la syntaxe du C++), à savoir le pointeur 'this' de l'instance de classe qui constitue le contexte dans lequel elle est appelée.
__________________
Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.
nouknouk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2012, 10h00   #3
Alex-L
Membre habitué
 
Avatar de Alex-L
 
Homme Alexandre
Étudiant
Inscription : janvier 2011
Messages : 155
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 155
Points : 141
Points : 141
Enfaite c'est en mélangeant la SDL avec le C++ que les problèmes arrivent, tu as raison.
J'ai donc tout refait en C est ça marche.

Merci de ton aide
Alex-L est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h19.


 
 
 
 
Partenaires

Hébergement Web