Bonjour! Voilà je développez une application en c++ en utilisant l'API SDL et OpenGL. Mais voilà, j'ai résolu mon problème en faisant quelque chose que je n'avais jamais fait auparavant. Voici mes classes, une qui se nomme "Device" et l'autre "Engine".
Dans mon Device.h ;
Avant que je résolu mon problème, j'avais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Device { public: Device(); virtual ~Device(); int Width; int Height; int Bits; string Title; private: };
On peut remarquer, qu'il y a la classe Device dans le constructeur Engine.
Le problème venait de la méthode main qui maffichait une erreur de ce style "Device*&".
La méthode main :
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 class Engine { public: Engine(Device* device, GLEngine::Color color); Engine(const Engine& orig); virtual ~Engine(); void Run(); private: int _Width, _Height, _Bits; string _Title; SDL_Surface* _Screen; SDL_Event event; GLEngine* gl_engine; bool QuitApp; void KeyboardDown(); void VideoOnResize(); void Dispose(); };
Ensuite dans ma classe Engine corrigé par "class Device":
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 int main(int argc, char** argv) { // Device Device* device = new Device(); device->Title = "Test Engine"; device->Width = 1024; device->Height = 768; device->Bits = 32; // Color GLEngine::Color color = { 0.5f, 0.5f, 0.5f }; // Engine Engine* engine = new Engine(device, color); engine->Run(); delete device; delete engine; return (EXIT_SUCCESS); }
C'est ici que mon problème de compilation, c'est résolu et à afficher ma fenêtre normalement. Si vous pourriez me dire comment ça se fait, qu'il fallait faire pour que cette manipulation fonctionne. Je vous en remercie. Bonne après-midi.
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 class Device; class Engine { public: Engine(Device* device, GLEngine::Color color); Engine(const Engine& orig); virtual ~Engine(); void Run(); private: int _Width, _Height, _Bits; string _Title; SDL_Surface* _Screen; SDL_Event event; GLEngine* gl_engine; bool QuitApp; void KeyboardDown(); void VideoOnResize(); void Dispose(); };
Partager