none
une déclaration qui se fait mal RRS feed

  • Question

  • bonjour

    J'essaie de trouver la bonne syntaxe pour déclarer un objet:

    je vous donne le code avec les deux essai de déclaration pour objInterbaseManager

    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    
    /*_____LOCAL-INCLUDES_________________________________________________________*/
    #include "Bloc.hpp"
    #include "Structure.h"
    #include "TypeDefs.hpp"
    #include "POS.h"
    #include "Layout.h"
    #include "ClassesAligner.hpp"
    #include "LinkDescription.h"
    #include "Message.h"
    #include "Event.h"
    #include "Database.h"
    #include "InterbaseManager.h"
    	extern SpecificationLoader::CInterbaseManager objInterbaseManager;
    };
    extern SpecificationLoader::CInterbaseManager SpecificationLoader::objInterbaseManager;

    la première déclaration est acceptée, la seconde est refusé: je vous met les diagnostiques

    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\all_in_one.cpp(67): error C2039: 'CInterbaseManager' : n'est pas membre de 'SpecificationLoader'
    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\all_in_one.cpp(67): error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'objInterbaseManager'
    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\all_in_one.cpp(67): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\all_in_one.cpp(67): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut


    Jean Noël Martin

    mercredi 20 novembre 2013 15:09

Réponses

  • J'ai trouvé la solution:

    il faut déclarer dans les sous module l'objet avec une double référence:

    SpecificationLoader::SpecificationLoader::CInterbaseManger objInterbaseManager;


    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 vendredi 22 novembre 2013 11:08
    vendredi 22 novembre 2013 11:08

Toutes les réponses

  • Bonjour,

    Supprimer le namespace que vous avez mis sur objInterbaseManager :

    extern SpecificationLoader::CInterbaseManager SpecificationLoader::objInterbaseManager;

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    jeudi 21 novembre 2013 06:49
    Modérateur
  • Je suis d'accord avec vous mais je l'ai mis pour montrer la problématique que j'ai

    en fait ce module en contient plusieurs et dans les modules de  dessous l'objet objInterbase a besoin d'être connu et je ne sais pas comment le déclarer. Les essais que j'ai fait ont été refusés par le compilateur


    Jean Noël Martin

    jeudi 21 novembre 2013 12:47
  • Bonjour,

    Vous avez besoin de déclarer une variable globale ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    jeudi 21 novembre 2013 22:42
    Modérateur
  • J'ai trouvé la solution:

    il faut déclarer dans les sous module l'objet avec une double référence:

    SpecificationLoader::SpecificationLoader::CInterbaseManger objInterbaseManager;


    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 vendredi 22 novembre 2013 11:08
    vendredi 22 novembre 2013 11:08