Historique des modifications - Message

Message #5843

Sujet: Probleme namespace pour gestion d'un LOD perso


Type Date Auteur Contenu
Création du message 21-01-2009 10:53:23 johnplayer
Je veux créer un namespace dans lequel je metttrais ce qu'il me faut pour gérer un LOD perso. Mais il y a un probleme : Le programme compile bien jusqu'à ce que je veuille l'utiliser (2 première lignes de titanium.cpp) et à ce moment là il me met :

1>Node_Manager.obj : error LNK2005: "unsigned long Node_Manager::Id_Thread_LOD" (?Id_Thread_LOD@Node_Manager@@3KA) déjà défini(e) dans Titanium.obj
1>Node_Manager.obj : error LNK2005: "bool Node_Manager::LOD_actif" (?LOD_actif@Node_Manager@@3_NA) déjà défini(e) dans Titanium.obj
1>Node_Manager.obj : error LNK2005: "class irr::core::array<class irr::video::ITexture *,class irr::core::irrAllocator<class irr::video::ITexture *> > Node_Manager::textures_list" (?textures_list@Node_Manager@@3V?$array@PAVITexture@video@irr@@V?$irrAllocator@PAVITexture@video@irr@@@core@3@@core@irr@@A) déjà défini(e) dans Titanium.obj
1>Node_Manager.obj : error LNK2005: "class irr::core::array<struct Node_Manager::Param_Node,class irr::core::irrAllocator<struct Node_Manager::Param_Node> > Node_Manager::node_list" (?node_list@Node_Manager@@3V?$array@UParam_Node@Node_Manager@@V?$irrAllocator@UParam_Node@Node_Manager@@@core@irr@@@core@irr@@A) déjà défini(e) dans Titanium.obj
1>d:\\Visual Studio 2008\\Projects\\Titanium\\Titanium\\\\Titanium\\Titanium.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés

Mon namespace :
#include "en-tête.h"

namespace Node_Manager
{

// classes

class Shader_caller : public IShaderConstantSetCallBack
{
	public :
		Shader_caller( IrrlichtDevice* _device, IGPUProgrammingServices* services );
	
        virtual void OnSetConstants ( IMaterialRendererServices* services , s32 userData );
      		
	private :
		IrrlichtDevice* device;
} ;

// énumérations

enum Type_LOD 
{
	ETL_3D_TO_2D, // utilisation d’un billboard
	ETL_LOD_LVL1, // un mesh est utilisé (le node n’est plus affiché à une certaine distance).
	ETL_LOD_LVL2, // on utilise un mesh low-poly puis il disparait
	ETL_LOD_LVL3  // on utilise un mesh low-poly ,un mesh very low-poly puis il disparait.
};

enum TYPE_NODE
{
};

// structures

struct Param_Node	// contient les infos de création d’un node
{
	stringw nom ;					//
	int Id ;						//
	Type_LOD methode ;				//
	bool backculling ;				//
	bool light_reactif ;			//
	E_MATERIAL_TYPE texturing ;		//
	stringw hlsl_path ;				//
	Shader_caller call;				//
	TYPE_NODE type;					// 
	int textures [4];				// 

};

// fonctions
	void LOD();                                 // fonction d’initialisation du LOD
	DWORD WINAPI Thread_LOD(LPVOID Param);		// thread LOD
	bool addNodeList(Param_Node);				// ajoute un noeud dans le scenegraph et la node_list

// variables (CELLES QUI POSENT PROBLEME des que je mets les 2 premieres lignes dans titanium.cpp)
	bool LOD_actif = false; 		  		// permet l’arrêt du thread de LOD
	array <Param_Node> node_list;  		    // liste des nœuds de la scène
	array <ITexture*> textures_list;		// liste des textures
	DWORD Id_Thread_LOD;                    // id du thread LOD

};    // fin du namespace

Mon titanium.cpp :
#include "Node Manager.h"
using namespace Node_Manager;

int main()
{
	return 0;
};

Je fais appel à tout les connaisseurs C++. Help!

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
215 invités en ligne
membre en ligne: -
RSS Feed