Bonjour,

En ce moment je fait un petit prog OpenGL qui utilise Glut. J'ai décidé de faire une class pour la gestion de ma fenetre. Le .h donne ca:

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
 
#ifndef _CWINDOWS_
#define _CWINDOWS_
 
#include "CAxis.h"
 
class CWindows
{
  private:
    bool form_fullscreen;
    bool form_info;
    CAxis Axis;
 
    void (*pDisplay)(void);
  public:
    CWindows();
    ~CWindows(void);
 
    void Init(int,char**);
    void Display(void);
    void Key(unsigned char,int,int);
};
 
#endif
Mon .c
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
 
[...]
CWindows::CWindows()
{
  form_fullscreen = false;
  form_info = false;
 
}
 
void CWindows::Init(int argc,char** argv)
{
  glutInit(&argc,argv);
 
  glutInitWindowSize(resx,resy);
 
  glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
  glutCreateWindow("Appli");
  glutPositionWindow(0,0);
  glutInitWindowSize(300,300);
  glutDisplayFunc(this->Display());
  glutKeyboardFunc(this->Key);
}
[...]
Jusque la pas de souci mais voila mon compilateur (dev-c++) me retourne les érreurs suivante:
In member function `void CWindows::Init(int, char**)':
invalid use of void expression
argument of type `void (CWindows::)(unsigned char, int, int)' does not match `void (*)(unsigned char, int, int)'
[Build Error] [CWindows.o] Error 1

Tout en sachant que l'erreur 'invalid use of void expression' est pour la ligne de code 'glutDisplayFunc(this->Display());'. Et que l'erreur 'argument of type `void (CWindows::)(unsigned char, int, int)' does not match `void (*)(unsigned char, int, int)'' est pour la ligne 'glutKeyboardFunc(this->Key);'.

J'ai éssayer aussi avec un pointeur sur fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
pDisplay = this->Display();
Mais le compilateur me retourne l'érreur suivante: 'void value not ignored as it ought to be'.

Quelqu'un peut t'il m'aider ?