Bonjour,
Je suis sur un projet perso qui commence a devenir a mon niveau assez volumineux en nombre de class: 25 header.
J'ai rencontré quelques problèmes de structure au niveau des includes du faite d'inclure <ogre.h> dans la plus part de mes header . J'ai donc supprimé tous les includes du projet pour essayer de les refaire proprement seulement je suis confronté a quelques soucis que je n'arrive pas a régler
Quant je compile j'ai l'erreur "error C2653: 'Ogre'*: n'est pas un nom de classe ni d'espace de noms" dans l'un de mes fichiers.
ci dessous une description de ma structure:
api.h:
sceneManager.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //ogre #include <Ogre.h> #include <OgreRoot.h> #include <OgreConfigFile.h> #include <OgreViewport.h> #include <OgreRenderWindow.h> #include <OgreSingleton.h> //Physx #include <PxPhysicsAPI.h> #include <PxExtensionsAPI.h> #include <PxDefaultErrorCallback.h> #include <PxDefaultAllocator.h> //mes include #include "vector3.h" #include "sceneManager.h" #include "inputManager.h" #include "stateManager.h" #include "resourceManager.h" #include "gui.h" #include "thirdPersonCamera.h" #include "frameListener.h"
scene.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #include "scene.h"
actor.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 //ogre #include <OgreSceneManager.h> #include <OgreSceneNode.h> #include <OgreMeshManager.h> #include <OgreEntity.h> //PhysX #include <PxCudaContextManager.h> #include <PxDefaultSimulationFilterShader.h> #include <PxDefaultCpuDispatcher.h> #include <PxRigidBody.h> #include <PxScene.h> #include <PxActor.h> #include <PxShape.h> #include <PxControllerManager.h> #include <PxCapsuleGeometry.h> #include <PxCapsuleController.h> //mes include #include "controller.h" #include "animatedMesh.h" #include "actor.h"
j'utilise visual c++ 2008 express
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //PhysX #include <PxRigidDynamic.h> class Actor { public: Actor(Ogre::SceneNode *node, PxRigidDynamic *rigidDynamicActor); ~Actor(void); void update(void); ........ }
l'erreur est affiché sur la ligne : Actor(Ogre::SceneNode *node, PxRigidDynamic *rigidDynamicActor);
J'ai simplifier le code pour pas que cela ne prenne plus de place et pour montre uniquement la structure des include mais si quelqu'un se sent le coeur a l'ouvrage je peu fournir l'intégralité du code source.
Je me demande si le problème pourrait venir d'une erreur dans un fichier précédemment inclue ?
Je pourrais corriger le problème en fessant un #include <Ogre.h> dans actor.h mais je ne crois pas que cela soit viable sur le long terme si le nombre de fichier continue a augmenter ?
voila sinon si quelqu un a des conseils a me donné sur la structure ou des tutos je suis prenneur sa fait un petit moment que cela me bloque
merci
Partager