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++/CLI Discussion :

Classe non reconnue


Sujet :

C++/CLI

Vue hybride

JeanNoel53 Classe non reconnue 06/01/2016, 16h14
Médinoc Euh, what contre What? ... 06/01/2016, 17h20
JeanNoel53 J'ai chagé... 06/01/2016, 17h49
Médinoc Ton extrait de code source... 06/01/2016, 17h53
JeanNoel53 La solution 06/01/2016, 20h08
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Classe non reconnue
    bonjour,
    J'ai un namespace IBPP qui contient une classe Exception
    Je vous met le code corespondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    namespace SpecificationLoader
    {
      namespace IBPP
      {
      (...)
    	class Exception : public std::exception
    	{
    	public:
    		virtual const char* Origin() const throw() = 0;
    		virtual const char* ErrorMessage() const throw() = 0;	// Deprecated, use what()
    		virtual const char* what() const throw() = 0;
    		virtual ~Exception() throw();
    	};
    et je l'utilise dans une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			terme1 = "Index #";
    			terme2 = "\n";
    			terme3 = "Error: ";
    			ErrorT = (char*)exception.IBPP::Exception::What();
    			ErrorString = terme1 + terme2 + terme3 + ErrorT + terme2;
    ce qui conduitl ecompilateur à produire un message inchoerent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1>..\..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(258): error C2039: 'What'*: n'est pas membre de 'SpecificationLoader::IBPP::Exception'
    1>          D:\usr\Memoria\dev\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\ibpp.h(174)*: voir la déclaration de 'SpecificationLoader::IBPP::Exception'
    1>..\..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(258): error C2039: 'What'*: n'est pas membre de 'SpecificationLoader::IBPP::Exception'
    1>          D:\usr\Memoria\dev\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\ibpp.h(174)*: voir la déclaration de 'SpecificationLoader::IBPP::Exception'
    qui m'aidera sera

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Euh, what contre What?

    j'ai remarqué que bon nombre de tes questions révélaient une ignorance non seulement du C++/CLI, mais aussi du C++ natif.
    Or C++ est un langage dont on a intérêt à maîtriser complètement les bases (classes, inclusions etc.) avant de se lancer dans le C++/CLI...

    Aussi:
    Le compilateur est là pour attirer ton attention sur ces fautes. On ne devrait pas avoir à les traduire pour toi. Comment veux-tu espérer programmer si tu ne comprends pas ce que dit le compilateur sur des cas si simples?

    PS: Pourquoi fais-tu un cast qui efface le const pour ta variable ErrorT? Tu devrais probablement changer sa déclaration.
    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.

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut J'ai chagé...
    J'ai changé Le type de ErrorT et retirer le cast.
    ça n'a rien changé What() est membre de IBPP::Exceptio d'après le source de ibpp.h dont j'ai fourni un extrait pour la déclaration. et ce n'est pas ce que dit le compilateur

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    • Ton extrait de code source dit que what() est membre de la classe, mais ne fait aucune mention de What().
    • La sortie du compilateur dit que What() n'est pas membre de la classe, mais n'a absolument pas à se plaindre de what().

    Il n'y a donc pas de désaccord entre compilateur et code source de la déclaration.
    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.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut La solution
    est de choisir system::exeption^

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sauf que ce n'est pas du tout le même genre d'exception, ce n'est pas lancé pareil (lancé sur le tas alors qu'une exception C++ est lancée par valeur et attrapée par référence), et ça ne contient pas non plus de fonction What().
    Il faut savoir avec quoi tu traites: Soit tu traites avec du code natif qui lance des exceptions C++, soit tu traites avec du code managé qui lance des exceptions .Net. Il faut adapter ton try/catch au code appelé, et non l'inverse.
    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.

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

Discussions similaires

  1. Classe non reconnue lors de la publication sur Internet
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 16
    Dernier message: 28/01/2011, 13h19
  2. Erreur, classe non reconnue
    Par tet2brick dans le forum Langage
    Réponses: 7
    Dernier message: 24/09/2010, 10h48
  3. class non reconnu :S
    Par vb_boycotter dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/05/2009, 11h25
  4. Classe non reconnu projet
    Par Hurin dans le forum ASP.NET
    Réponses: 6
    Dernier message: 06/06/2008, 11h49
  5. Classe non reconnue et pourtant bel-et-bien inclue
    Par Vitaly dans le forum Langage
    Réponses: 19
    Dernier message: 18/07/2007, 00h45

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