Glut + C++

cs_F0uF0u Messages postés 2 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004 - 16 nov. 2004 à 13:15
cs_F0uF0u Messages postés 2 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004 - 17 nov. 2004 à 07:05
bonjour je suis entrain d'essayer de faire un petit moteur 3d . pour cela g une classe application dans laquelle g une méthode main() et toutes les autre méthode comme clavier() , affichage(), mousemotion()... . Mon problème est que lorsque dans ma méthode main j'appelle par exemple glutDisplayFunc(affichage); il me dit
" app.cpp:109: error: argument of type `void (app::)()' does not match `void (*)()" ... apparement les fonctions de rappelles n'accepte pas les méthodes de classe...

si quelqu'un a une solution pour régler ce petit souci cela m'aiderai grandement ;)

méthode privé:
void app::affichage () {}

méthode publique :
void app::main ()
{...
glutDisplayFunc(affichage);
...}

merci d'avance :)

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2004 à 14:04
une fonction de rappel doit etre declaree 'static' si est dans une classe.

ciao...
BruNews, MVP VC++
0
asmanur Messages postés 230 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 4 août 2005
16 nov. 2004 à 17:27
Ou tu attribues un id pour chaque instance de ta classe et une fonction globale display
ex
void Display()
{
int cur_id=glutGetWindow();
App* p= find_id(id);//Retrouve l'instance par rapport à l'id
p->Display();
}
et ds
app::Main()
{
glutDisplayFunc(Display);
}
0
cs_F0uF0u Messages postés 2 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004
17 nov. 2004 à 07:05
oki nikel merci a vous je v essayer tout ca :)
0
Rejoignez-nous