[C++] Appeler une variable située dans un .h

Appeler une variable située dans un .h [C++] - Programmation

Marsh Posté le 18-03-2001 à 15:14:54    

Voilà le code de cube.h:
 
#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>
 
 
static BYTE face_indicies[12][3] = {
// Box01
 {0,2,3 }, {3,1,0 }, {4,5,7 }, {7,6,4 }, {0,1,5 }, {5,4,0 }, {1,3,7 },
 {7,5,1 }, {3,2,6 }, {6,7,3 }, {2,0,4 }, {4,6,2 }
};
static GLfloat vertices [8][3] = {
{-0.5f,-0.451219f,-0.27439f},{0.5f,-0.451219f,-0.27439f},{-0.5f,0.451219f,-0.27439f},
{0.5f,0.451219f,-0.27439f},{-0.5f,-0.451219f,0.27439f},{0.5f,-0.451219f,0.27439f},
{-0.5f,0.451219f,0.27439f},{0.5f,0.451219f,0.27439f}
};
GLint cubegen()
{
 int i;
 int j;
 
 GLint lid=glGenLists(1);
   glNewList(lid, GL_COMPILE);
 
    glBegin (GL_TRIANGLES);
      for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++)
       {
       for(j=0;j<3;j++)
        {
          int vi=face_indicies[i][j];
           glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
        }
       }
    glEnd ();
 
   glEndList();
   return lid;
 
   GLint cube=cubegen ();
};
 
Dans le fichier main.cpp, j'ai mis #include "cube.h" et plus loin j'ai glCallList (cube); mais VC++ me dit que la variable cube n'exsite pas. Comment faire qu'elle soit accessible dans le code principale?

Reply

Marsh Posté le 18-03-2001 à 15:14:54   

Reply

Marsh Posté le 18-03-2001 à 15:35:45    

si je me suis pas trompé en lisant ton code source,
ta variable cube est dan sla fonction cubegen() donc elle est locale à cette fonction.Il faut que tu sorte la déclaration de cube de la fonction pour qu'elle soit accessible dans le .cpp


---------------
http://www.chadenat.forez.com
Reply

Marsh Posté le 18-03-2001 à 15:37:41    

Si j'ai bien vu, cube est un objet local à la fonction GLint cubegen() donc il est détruit automatiquement à l'"}" de fin. Je pense que tu devrais sortir la déclaration de cube de ta fonction.


---------------
Découvrez la version 2005 du  Site des Mains!! C'est la même qu'en 2004!
Reply

Marsh Posté le 18-03-2001 à 15:38:57    

mdr heffer je crois qu'on a répondu en même temps


---------------
http://www.chadenat.forez.com
Reply

Marsh Posté le 18-03-2001 à 15:39:25    

chadenat> C'est marrant ça, quasiment la même réponse!

Reply

Marsh Posté le 18-03-2001 à 15:41:52    

euh moi aussi je suis étudiant à Lyon ca doit être pour ca


---------------
http://www.chadenat.forez.com
Reply

Marsh Posté le 18-03-2001 à 15:43:15    

Merci tout les deux, ça marche impec!!!
:)

Reply

Sujets relatifs:

Leave a Replay

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