IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[error C2079] Prolème avec CBuffer de Yes::Engine


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut [error C2079] Prolème avec CBuffer de Yes::Engine
    Bonjour,

    Je suis actuellement entrain de faire un moteur 3D en suivant le tuto Sur le moteur 3d Yes::Engine. J'ai réussi à bien avancer mais je rencontre un problème lorsque je veux définir la classe C_Model.

    Voici la classe C_Model :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include <Configs/Fwd.h>
    #include <ResourcesManager/C_IResource.h>
    #include <Core/C_IBuffer.h>
    #include <Core/C_IDeclaration.h>
    #include <Utilities/C_SmartPtr.h>
    #include <Maths/C_Vector2.h>
    #include <Maths/C_Vector3.h>
     
    namespace SilverEngine{
     
    	class SILVERENGINE_API C_Model : public C_IResource{
    		public :
     
    			struct TVertex
    			{
    				vector3f     Position;  ///< Position
    				vector3f     Normal;    ///< Vecteur normal
    				unsigned long Color;     ///< Normale
    			};
    			typedef unsigned short TIndex;
     
    			C_Model(const TVertex* Vertices, unsigned long VerticesCount, const TIndex* Indices, unsigned long IndicesCount);
     
    			void Render() const;
     
    		protected :
     
    			CDeclarationPtr   m_Declaration;  
    			C_Buffer<TVertex> m_VertexBuffer; ///< error C2079: 'SilverEngine::C_Model::m_VertexBuffer' utilise une class de 'SilverEngine::C_Buffer<TVertex>' non défini    
    			C_Buffer<TIndex>  m_IndexBuffer;  ///< error C2079: 'SilverEngine::C_Model::m_IndexBuffer' utilise une class de 'SilverEngine::C_Buffer<TIndex>' non défini      
     
        };
     
        typedef C_SmartPtr<C_Model, C_ResourceCOM> TModelPtr;
     
    } // namespace SilverEngine
    La classe est similaire au tuto pour le moment car je compte définir une class C_Mesh etc... Mais je n'arrive pas à faire fonctionner C_Buffer<TVertex> et C_Buffer<TIndex>. Alors que Tvertex est définie plus haut.

    En cherchant sur internet je suis tomber sur plusieur remarque indiquant qu'il fallait déclarer à l'avance mais même en mettant ceci en haut du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template <class> class C_Buffer;
    Je n'arrive pas à comprendre cette erreur. Serait-il possible que cela vienne d'une configuration du projet?

    Si quelqu'un pouvais m'aider je le remercie d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu ne peux pas prédéclarer le type d'une variable membre, car le compilateur a besoin du type complet.
    Tu ne peux prédéclarer que les types utilisés pour leur nom (déclaration de pointeurs, références et type de retour de fonction, en gros).

    Il te manque en fait l'include de la template de classe C_Buffer

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 58
    Par défaut
    Bonjour,

    Alors la je suis vraiment c**. J'ai même pas fait attention à sa.
    Sa marche beaucoup mieux en ajoutant comme tu la signaler la classe C_Buffer

    Merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Yes::Engine] problème de compilation avec mingw et <cmath>
    Par jo-leptipois dans le forum Moteurs 3D
    Réponses: 1
    Dernier message: 04/09/2013, 08h06
  2. error LNK2001 - YES::Engine
    Par gtelmon dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 24/09/2006, 17h34
  3. [debutant][Jtree] un prolème avec le Jtree
    Par bigbabou dans le forum Composants
    Réponses: 2
    Dernier message: 08/02/2006, 10h35
  4. pb de link dans Visual C++ avec yes engine
    Par Jabrul dans le forum MFC
    Réponses: 14
    Dernier message: 14/01/2006, 12h53
  5. Réponses: 11
    Dernier message: 21/09/2005, 03h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo