Bonjour,
je fais un programme en Visual C++, avec plusieurs classes (pour un projet en opengl) disposée dans des fichier (.cpp et .h) différents. Tout marche sans probleme, je les ai créé avec le classwizard donc elles sont protégé avec le if!def... Donc normalement pas de soucis.Pourtant quand je fais une nouvelle classe maintenant qui herite d'une classe, les types (opengl et stdio) des autres classes sont "undeclared identifier"
Je comprends pas, voila les sources :
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
int LoadGLTextures(GLuint*,char *);
bool positionne(FILE *,char *,char fin = 0);
void err(char *);
struct RVB
{
float rouge;
float vert;
float bleu;
};
class MATERIAL
{
protected:
RVB Diffuse;
public:
GLuint Texture[1];
virtual void Traitement(int i) {};
virtual void load() {};
virtual void Charge(FILE*){};
virtual void print(FILE*){};
virtual bool IsTextured(int) { return false; };
virtual bool IsMultiSub() { return false; };
};
Mon MATERIAL.h :
class MATERIAL_ST : public MATERIAL
{
char text_nom[256];
public:
bool Texture_exist;
MATERIAL_ST()
{
Diffuse.rouge = -1;
Diffuse.vert = -1;
Diffuse.bleu = -1;
Texture_exist = false;
}
void load();
void Charge(FILE*);
void print(FILE*);
void Traitement(int);
bool IsTextured(int);
bool IsMultiSub() { return false; };
};
.
. (etc...)
.
.
#endif // !defined(AFX_MATERIAL_H__B479D3AE_4C8C_44CA_8209_6C9C84E922CC__INCLUDED_)
Mon MESH.H :
#if !defined(AFX_MESH_H__4FF6F9BC_7520_460E_8BF1_8C8710F4D8AA__INCLUDED_)
#define AFX_MESH_H__4FF6F9BC_7520_460E_8BF1_8C8710F4D8AA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
void get_nom(FILE*,char*);
struct COORDONNE
{
GLfloat X;
GLfloat Y;
GLfloat Z;
};
struct FACE
{
unsigned short A;
unsigned short B;
unsigned short C;
unsigned int Id;
};
class MESH
{
private :
int Nb_Vertex;
COORDONNE *Vertex;
int Nb_Faces;
FACE *Faces;
int Nb_T_Vertex;
COORDONNE *T_Vertex;
int Nb_T_Faces;
FACE *T_Faces;
COORDONNE Position;
unsigned char Material_ref;
char *Nom;
public :
MESH();
~MESH();
void Init(FILE*);
void print(char *);
void dessine();
void dessineFace(int);
};
#endif // !defined(AFX_MESH_H__4FF6F9BC_7520_460E_8BF1_8C8710F4D8AA__INCLUDED_)
Mon MODELE.H :
#if !defined(AFX_MODELE_H__8C46A1F3_E5B1_48BC_A372_111EA768D9B7__INCLUDED_)
#define AFX_MODELE_H__8C46A1F3_E5B1_48BC_A372_111EA768D9B7__INCLUDED_
#include "MATERIAL.h"
#include "MESH.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class MODELE
{
protected:
MESH *Meshes;
unsigned char nb_mesh;
public:
MATERIAL_CONT Material;
MODELE()
{
nb_mesh = 0;
};
void Init(char*);
void dessine();
void load();
};
#endif // !defined(AFX_MODELE_H__8C46A1F3_E5B1_48BC_A372_111EA768D9B7__INCLUDED_)
Jusqu'ici tout marche...
Mais apres quand je rajoute une nouvelle classe, les classes MESH.H et MATERIAL.H ont tous leurs types undeclared identifier...
Mon UneCapsule.h :
#if !defined(AFX_UNECAPSULE_H__CA086367_7DB3_4C10_9D80_80FD1C5E5350__INCLUDED_)
#define AFX_UNECAPSULE_H__CA086367_7DB3_4C10_9D80_80FD1C5E5350__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "MODELE.h"
class UneCapsule : public MODELE
{
public:
UneCapsule();
virtual ~UneCapsule();
};
#endif // !defined(AFX_UNECAPSULE_H__CA086367_7DB3_4C10_9D80_80FD1C5E5350__INCLUDED_)
Si quelqu'un a une idée...