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 :

[Exception] message erreur incomprehensible pour classe exception


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut [Exception] message erreur incomprehensible pour classe exception
    bonjour,

    j'essaie de developper une classe d'exception.
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    #ifndef pal_error_h
    #define pal_error_h
     
     
    #include <exception>
    #include <string>
     
    namespace pal {
     
    //!     Central error handling class
    class  palException : public std::exception
    {
    public:
    	//constructor
    	palException(const std::string& msg=" pal exception"):	m_message(msg),std::exception() {}
     
     
    	palException(const std::string& file,int line,const std::string& msg ="pal exception",const std::string& obj="")
    	 :	m_message(_makeErrorMessage(file,line,msg,obj)),std::exception() {}
     
     
    	 //copy constructor
    	palException(const palException& e):	m_message(e.m_message),std::exception(e) {}
     
    	// assigenment operator
    	palException& operator=(const palException& e);
     
    	virtual const char* what() const throw() { return m_message.c_str(); }
     
    	//destructor
    	virtual ~palException() throw() {}
     
    private:
    	static std::string _makeErrorMessage(const std::string& file,int line,const std::string& msg,const std::string& obj);
     
    	std::string m_message;
    };
     
     
     
    /*
    	This macro adds some short-hand functionality by including filename
    	and line number in the error message.
    */
    #define palERROR(msg,obj) palException(__FILE__,__LINE__,msg,obj)
     
     
     
    } // namespace pal
     
    #endif // pal_error_h
    dans le fichier .cpp j'implement la function static _makeErrorMesage et ;'operator =

    a lui tout seul, le fichier compile sur visual Studio 2003 mais lorsque j'essaie de compiler toute ma solution j'obtiens:
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\errors.h(29): error C2065: 'AMGETERRORTEXTPROCA' : undeclared identifier
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\errors.h(29): error C2065: 'WINAPI' : undeclared identifier
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\errors.h(29): error C2501: 'BOOL' : missing storage-class or type specifiers
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\errors.h(29): fatal error C1903: unable to recover from previous error(s); stopping compilation
    distributions error LNK2019: unresolved external symbol "private: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl pal::palException::_makeErrorMessage(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?_makeErrorMessage@palException@pal@@CA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV34@H00@Z) referenced in function "public: __thiscall pal::palException::palException(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0palException@pal@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H00@Z)
    distributions fatal error LNK1120: 1 unresolved externals


    est ce que quelqu'un a une idee de ce qui se passe?

    merci
    K

  2. #2
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    hello,

    je n'ai pas de réponse, mais tu pourrais tenter de localiser le probleme en commentant parties par parties ton code
    genre en ne mettant rien dans la classe pour commencer

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Essaie de voir quel(s) fichier(s) fait des erreurs dans l'inclusion de errors.h, et poste le début...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    ma classe "Error" est dans le project nomme Core de la solution. mais je fais des #include "error.h" dans un autre projet nomme distribution. lorsque j'inclue la dependence de distribution sur core les erreurs de link disparaissent.

    est ce la maniere de resoudre le probleme@


    merci

    kamel

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je ne parlais pas des erreurs de link, mais des erreurs de compilaton.

    J'ai d'ailleurs du mal à comprendre pourquoi Visual essaie de linker alors que la compilation a échoué...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    mes erreurs de compilation etaient dues a des typos. j'avais des #include "errors.h" au lieu de "error.h" qui est le fichier des ma classe exception.

    il n'y a maintenant plus que des erreurs de link qui disparaissent lorsque j'inclus la dependence du projet "Distribution" sur le projet "core"
    kamel

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    est ce qu'il peut uy avoir conflit entre le fichier errors.h qui se situe dans

    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include
    et un fichier de la solution lui aussi nomme errors.h

    merci

    kamel

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Selon la façon dont tu l'inclues, oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. exception message erreur
    Par pat100 dans le forum Général Python
    Réponses: 20
    Dernier message: 06/05/2013, 09h29
  2. exception message erreur
    Par pat100 dans le forum Django
    Réponses: 0
    Dernier message: 24/04/2013, 09h51
  3. Api Google Map erreur incomprehensible (pour moi!)
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/06/2010, 16h32
  4. erreur 80040154 pour classe com
    Par bobby51 dans le forum VB.NET
    Réponses: 4
    Dernier message: 20/06/2008, 14h15
  5. messages erreur incomprehensible asp.net
    Par samkil dans le forum ASP.NET
    Réponses: 7
    Dernier message: 17/10/2007, 17h55

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