Appeler une variable située dans un .h [C++] - Programmation
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
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.
Marsh Posté le 18-03-2001 à 15:38:57
ReplyMarsh Posté le 18-03-2001 à 15:41:52
euh moi aussi je suis étudiant à Lyon ca doit être pour ca
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?