openGL sous visual

openGL sous visual - C++ - Programmation

Marsh Posté le 12-04-2005 à 13:36:13    

bonjour a tous,  
j'ai decider de me lancer dans la prog de dessin avec openGL, je commence dons par les bases, en essayant de dessiner un simple carré dans une fenetre, a l'aide d'un tutoriel. or aucune erreur n'est trouvé qd je compile, mais qd je construit aucune de mes ligne de code ne sont comprise!
voici mon code:
 

Code :
  1. #include <GL/glut.h>
  2. int main (){
  3. int argc;
  4. char **argv;
  5. glutInit(&argc, argv);
  6. glutInitDisplayMode(GLUT_RGB);
  7. glutInitWindowPosition(200,200);
  8. glutInitWindowSize(250,250);
  9. glutCreateWindow("gamme de gaz" );
  10. glClearColor (1.0,1.0,1.0,0.0);
  11. glPointSize (2.0);
  12. glBegin (GL_POLYGON);
  13. glColor3f (0.0,0.0,0.0);
  14. glVertex2f(-10,-10);
  15. glColor3f (0.0,0.0,0.0);
  16. glVertex2f(-5,-10);
  17. glColor3f (0.0,0.0,0.0);
  18. glVertex2f(-5,-9);
  19. glColor3f (0.0,0.0,0.0);
  20. glVertex2f(-10,-9);
  21. glEnd();
  22. return 0;
  23. }


si qq1 peut venir a mon secours, car la je n'arrive plus a avancer....
merci d'avance

Reply

Marsh Posté le 12-04-2005 à 13:36:13   

Reply

Marsh Posté le 12-04-2005 à 13:44:34    

question bete, tu as installé les dll d'openGL ? glu32.dll et les autres ...


---------------
The Rom's, à votre service
Reply

Marsh Posté le 12-04-2005 à 13:58:39    

mettre les msg d'erreurs ca peut aider!

Reply

Marsh Posté le 12-04-2005 à 14:05:31    

edouard22 a écrit :

bonjour a tous,  

Code :
  1. #include <GL/glut.h>
  2. int main (){
  3. int argc;
  4. char **argv;




 
Tu voulais pas plutôt mettre :

Code :
  1. int main (int argc, char **argv)


 
PS : tu n’as pas oublié des trucs dans ton tutorial ? Car tu ne définies pas de fonction pour l'affichage et tu ne lances même pas la boucle...


Message édité par Tarabiscote le 12-04-2005 à 14:24:03
Reply

Marsh Posté le 12-04-2005 à 14:26:58    

voici les messages d'erreur:
 
main.obj : error LNK2001: unresolved external symbol __imp__glEnd@0
main.obj : error LNK2001: unresolved external symbol __imp__glVertex2f@8
main.obj : error LNK2001: unresolved external symbol __imp__glColor3f@12
main.obj : error LNK2001: unresolved external symbol __imp__glBegin@4
....
 
yen a 12 comme ca!
 
le glu32.dll, je l'inclue avec #include?

Reply

Marsh Posté le 12-04-2005 à 14:33:43    

Non tu dois rajouter glu32.lib au linkage (ou -lglu32)

Reply

Marsh Posté le 12-04-2005 à 14:44:48    

cad??

Reply

Marsh Posté le 12-04-2005 à 14:47:45    

Tu utilises quoi comme compilateur VC++, gcc, ... ?

Reply

Marsh Posté le 12-04-2005 à 14:48:25    

VC++

Reply

Marsh Posté le 12-04-2005 à 14:53:05    

Bon alors tu devrais trouver ça dans Project->Options->Link
 
(enfin comme je l'ai pas actuellement je dit de tête)
 
PS : ça doit ressembler à ça : http://msdn.microsoft.com/library/ [...] tion04.gif
 
Et tu rajoutes avec les autres .lib


Message édité par Tarabiscote le 12-04-2005 à 14:56:33
Reply

Marsh Posté le 12-04-2005 à 14:53:05   

Reply

Marsh Posté le 12-04-2005 à 15:01:03    

je suis désolé, je suis débutant, mais je trouve pas...ds project ya pas option... et j'ai pas installé msdn sur mon pc, du coup pas d'aide...

Reply

Marsh Posté le 12-04-2005 à 15:02:53    

c bon j'ai trouvé, excuse

Reply

Marsh Posté le 12-04-2005 à 15:05:10    

Y'a quoi sous project ?
 
Peut-être "setting" ou approchant...
 
(dsl de pas être un pro de l'IDE de microsoft, je l'utilise juste en ligne de commande mais je pense pas que tu préfères)
 
PS : Ah je vois que t'as trouvé :)


Message édité par Tarabiscote le 12-04-2005 à 15:06:19
Reply

Marsh Posté le 12-04-2005 à 15:11:30    

;) oui, maintenant je n'ai pus qu'une erreur, parcontre ca me met qu'il ne peut pas l'ouvrir glu32.dll, faut-il que je change mon .h ??

Reply

Marsh Posté le 12-04-2005 à 15:13:39    

C'est glu32.lib et non pas glu32.dll
 
(le .lib permet d'importer les fonctions de la dll)

Reply

Marsh Posté le 12-04-2005 à 15:14:35    

oui, mais qd je mets .lib, les erreurs st tjs présentes!

Reply

Marsh Posté le 12-04-2005 à 15:17:19    

Il manque peut-être d'autres lib comme glut32.lib opengl32.lib, ...
 
Les erreurs sont toujours les mêmes ?

Reply

Marsh Posté le 12-04-2005 à 15:25:30    

ok, je vais voir, merci

Reply

Marsh Posté le 12-04-2005 à 15:44:01    

ok, maintenant ca marche, plus d'erreur ny a la compilation, ni a la contruction, mais losque j'execute, windows m'envoie un message de beugage, avec un rapport a envoyé...
voici mon code finiollé:

Code :
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <GL/glut.h>
  5. void affichage();
  6. int main (int argc,char **argv){
  7. glutInit(&argc, argv);
  8. glutInitDisplayMode(GLUT_RGB);
  9. glutInitWindowPosition(200,200);
  10. glutInitWindowSize(250,250);
  11. glutCreateWindow("gamme de gaz" );
  12. glClearColor (1.0,1.0,1.0,0.0);
  13. glPointSize (2.0);
  14. glutDisplayFunc(affichage);
  15. glutMainLoop();
  16. return 0;
  17. }
  18. void affichage (){
  19. glBegin (GL_POLYGON);
  20. glColor3f (0.0,0.0,0.0);
  21. glVertex2f(-10,-10);
  22. glColor3f (0.0,0.0,0.0);
  23. glVertex2f(-5,-10);
  24. glColor3f (0.0,0.0,0.0);
  25. glVertex2f(-5,-9);
  26. glColor3f (0.0,0.0,0.0);
  27. glVertex2f(-10,-9);
  28. glEnd();
  29. }


 
merci pour votre patience....

Reply

Marsh Posté le 12-04-2005 à 15:54:23    

Déjà en C++ c'est :
#include <iostream>
#include <cstdlib>
 
suivit éventuellement de :
using namespace std;
 
et non pas :
#include <iostream.h>  
#include <stdlib.h>  
 
Le reste c'est mieux mais c'est pas encore ça.
Si tu veux je peux poster un exemple que j'ai avec dev-cpp (bon c'est du c et c'est pas parfait mais c'est déjà pas trop mal)

Reply

Marsh Posté le 12-04-2005 à 16:05:00    

oui, je veux bien si ca ne derange pas.

Reply

Marsh Posté le 12-04-2005 à 16:10:04    

Moi ça ne me dérange pas, j'espère que ça gène personne d'autre.
 

Code :
  1. // exemple en c juste pour montrer un peu comment faire
  2. // et tester si la compilation et le linkage se passent correctement
  3. // EDIT : effacé pour faire de la place


 
Voilà, c'est juste un petit exemple fourni avec le package de glut de dev-cpp.


Message édité par Tarabiscote le 12-04-2005 à 16:42:29
Reply

Marsh Posté le 12-04-2005 à 16:19:14    

pourquoi :
[cpp]return EXIT_SUCCESS;[\cpp] ??
pourquoi tes fonctions sont des "static void"?
et tu as bien utilisé:
[cpp]#include <stdlib.h>[\cpp]

Reply

Marsh Posté le 12-04-2005 à 16:27:30    

J'ai dit que c'était juste un exemple, mais je vais répondre à tes questions :  
 
- "return EXIT_SUCCESS;" équivalent à "return 0;" déclaré dans stdlib  
 
- pourquoi tes fonctions sont des "static void"?  
C'est pas obligé mais ça permet de ne pas polluer l'espace de nommage avec des noms de fonction inutiles (c'est utilisé en C, en C++ -> namespace anonyme conseillé)  
 
- et tu as bien utilisé: #include <stdlib.h>  
Je t'ai que c'était pas de moi mais juste un exemple.  
Mais ici ça se justifie car cet exemple est en C !
 
PS : si tu l'as récupéré, je vais faire un peu de ménage.


Message édité par Tarabiscote le 12-04-2005 à 16:30:27
Reply

Marsh Posté le 12-04-2005 à 16:55:42    

oui c bon, merci

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed