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++Builder Discussion :

RAD Studio 11 : Différence de compilation entre Debug et Release en WIN32


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    900
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 900
    Points : 460
    Points
    460
    Par défaut RAD Studio 11 : Différence de compilation entre Debug et Release en WIN32
    Bonjour à tous

    Je rencontre un problème.
    J'ai développé un logiciel qui fonctionne très bien en mode debug. Pas d'erreur de compilation, l'exécutable se créé bien et je peu l'exécuter.

    Or dès que je veux le compiler en release, j'ai des erreurs. Il ne trouve pas un ComboBox dans une de mes Form.

    Savez-vous d'où pourrait venir le problème.

    Merci d'avance pour votre aide :

    Voici l'erreur que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [bcc32c Erreur] DlgProtocole.cpp(96): no member named 'ComboBoxImpulsions' in 'TDlgStimulationForm'
    Et voici la déclaration dans la classe TDlgStimulationForm
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    //---------------------------------------------------------------------------
     
    #ifndef DlgStimulationH
    #define DlgStimulationH
     
    //---------------------------------------------------------------------------
     
    #include <System.Classes.hpp>
    #include <FMX.Controls.hpp>
    #include <FMX.Forms.hpp>
    #include <FMX.Controls.Presentation.hpp>
    #include <FMX.StdCtrls.hpp>
    #include <FMX.Types.hpp>
    #include <FMX.ListBox.hpp>
     
    #include "Element.h"
    #include "Impulsion.h"
     
    //---------------------------------------------------------------------------
     
    //---------------------------------------------------------------------------
     
    #ifndef DlgStimulationH
    #define DlgStimulationH
     
    //---------------------------------------------------------------------------
     
    #include <System.Classes.hpp>
    #include <FMX.Controls.hpp>
    #include <FMX.Forms.hpp>
    #include <FMX.Controls.Presentation.hpp>
    #include <FMX.StdCtrls.hpp>
    #include <FMX.Types.hpp>
    #include <FMX.ListBox.hpp>
     
    #include "Element.h"
    #include "Impulsion.h"
     
    //---------------------------------------------------------------------------
     
    class TDlgStimulationForm : public TForm
    {
        __published:    // Composants gérés par l'EDI
     
            TLabel *LabelImpulsion;
                TComboBox *ComboBoxImpulsions;
            TButton *BoutonOk;
            TButton *BoutonAnnuler;
     
            TGroupBox *GroupBoxImpulsion;
            TLabel *LabelPort;
            TPanel *PanelPort0;
            TCheckBox *CheckBoxP0L0;
            TCheckBox *CheckBoxP0L1;
            TCheckBox *CheckBoxP0L2;
            TCheckBox *CheckBoxP0L3;
            TCheckBox *CheckBoxP0L4;
            TCheckBox *CheckBoxP0L5;
            TCheckBox *CheckBoxP0L6;
            TCheckBox *CheckBoxP0L7;
            TPanel *PanelPort1;
            TCheckBox *CheckBoxP1L0;
            TCheckBox *CheckBoxP1L1;
            TCheckBox *CheckBoxP1L2;
            TCheckBox *CheckBoxP1L3;
     
     
            void __fastcall OnChangeComboBoxImpulsions(TObject *Sender);
     
     
        private:    // Déclarations utilisateur
     
            // Méthode chargée de l'initialisation de l'affichage des Impulsions
            void __fastcall InitialisationAffichageImp(void);
     
     
        protected :
     
            // Méthode chargée de l'initialisation de la boite de dialogue
            virtual void __fastcall Initialisation(void);
     
     
        public:        // Déclarations utilisateur
     
            __fastcall TDlgStimulationForm(TComponent* Owner);
     
            // Méthode chargée de l'initialisation de la Boite de dialogue en Mode Ajout
            virtual void __fastcall InitialisationModeAjout(void);
     
            // Méthode chargée de l'initialisation de la boite de dialogue en Mode Modif
            virtual void __fastcall InitialisationModeModif(TElement *Element);
     
            // Méthode chargée de l'affichage de l'Impulsion Sélectionnée
            void __fastcall AfficherImp(void);
    };
     
    //---------------------------------------------------------------------------
     
    extern PACKAGE TDlgStimulationForm *DlgStimulationForm;
     
    //---------------------------------------------------------------------------
     
    #endif
    Et l'appel dans la Form DlgProtocoleForm qui déclenche l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                // On initialise la boite pour l'ajout d'une Stimulation
                DlgStimulationForm->InitialisationModeAjout();
     
                // On Affiche la boite de dialogue
                DlgStimulationForm->ShowModal();
     
                // Si l'utilisateur clique sur Ok
                if(DlgStimulationForm->ModalResult == mrOk)
                {
                    // On récupère l'Impulsion sélectionnée
                    TImpulsion *Imp = (TImpulsion *)(PrincipaleForm->Parametres->ListeImpulsions->Items[DlgStimulationForm->ComboBoxImpulsions->ItemIndex]);

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 1 333
    Points : 6 479
    Points
    6 479
    Par défaut
    Bonjour,

    Dans la déclaration de la classe TDlgStimulationForm, les lignes 24 et 25 font que ça ne peut pas compiler. Est-ce une erreur dans ton fichier où est-ce dans la copie du code que tu as posté?

  3. #3
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    900
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 900
    Points : 460
    Points
    460
    Par défaut
    Il y a eu une erreur dans la copie de mon code

    Voici le bon code
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    //---------------------------------------------------------------------------
     
    #ifndef DlgStimulationH
    #define DlgStimulationH
     
    //---------------------------------------------------------------------------
     
    #include <System.Classes.hpp>
    #include <FMX.Controls.hpp>
    #include <FMX.Forms.hpp>
    #include <FMX.Controls.Presentation.hpp>
    #include <FMX.StdCtrls.hpp>
    #include <FMX.Types.hpp>
    #include <FMX.ListBox.hpp>
     
    #include "Element.h"
    #include "Impulsion.h"
     
    //---------------------------------------------------------------------------
     
    class TDlgStimulationForm : public TForm
    {
    	__published:	// Composants gérés par l'EDI
     
    		TLabel *LabelImpulsion;
    		TComboBox *ComboBoxImpulsions;
    		TButton *BoutonOk;
    		TButton *BoutonAnnuler;
     
    		TGroupBox *GroupBoxImpulsion;
    		TLabel *LabelPort;
    		TPanel *PanelPort0;
    		TCheckBox *CheckBoxP0L0;
    		TCheckBox *CheckBoxP0L1;
    		TCheckBox *CheckBoxP0L2;
    		TCheckBox *CheckBoxP0L3;
    		TCheckBox *CheckBoxP0L4;
    		TCheckBox *CheckBoxP0L5;
    		TCheckBox *CheckBoxP0L6;
    		TCheckBox *CheckBoxP0L7;
    		TPanel *PanelPort1;
    		TCheckBox *CheckBoxP1L0;
    		TCheckBox *CheckBoxP1L1;
    		TCheckBox *CheckBoxP1L2;
    		TCheckBox *CheckBoxP1L3;
     
     
    		void __fastcall OnChangeComboBoxImpulsions(TObject *Sender);
     
     
    	private:	// Déclarations utilisateur
     
    		// Méthode chargée de l'initialisation de l'affichage des Impulsions
    		void __fastcall InitialisationAffichageImp(void);
     
     
    	protected :
     
    		// Méthode chargée de l'initialisation de la boite de dialogue
    		virtual void __fastcall Initialisation(void);
     
     
    	public:		// Déclarations utilisateur
     
    		__fastcall TDlgStimulationForm(TComponent* Owner);
     
    		// Méthode chargée de l'initialisation de la Boite de dialogue en Mode Ajout
    		virtual void __fastcall InitialisationModeAjout(void);
     
    		// Méthode chargée de l'initialisation de la boite de dialogue en Mode Modif
    		virtual void __fastcall InitialisationModeModif(TElement *Element);
     
    		// Méthode chargée de l'affichage de l'Impulsion Sélectionnée
    		void __fastcall AfficherImp(void);
    };
     
    //---------------------------------------------------------------------------
     
    extern PACKAGE TDlgStimulationForm *DlgStimulationForm;
     
    //---------------------------------------------------------------------------
     
    #endif

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 978
    Points : 2 054
    Points
    2 054
    Par défaut
    Salut,
    Il arrive que les librairies ne soient disponibles qu’en mode debug. (Erreur de distribution chez Embarcadero)
    Le plus simple est de copier le fichier lib manquant(release) depuis le répertoire debug


    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    900
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 900
    Points : 460
    Points
    460
    Par défaut
    Merci à toi

    En fait, j'ai recréé le projet de zéro et cela fonctionne maintenant.
    C'est à rien n'y comprendre mais bon le principal c'est que cela fonctionne maintenant

  6. #6
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    mars 2002
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2002
    Messages : 978
    Points : 2 054
    Points
    2 054
    Par défaut
    Salut
    en fait il s'agit d'un problème de distribution
    si tu compare le contenu des réépertoires Debug et release tu remarquera qu'un certain nombres de fichiers manquent dans le répertoire release
    ceci est connu chez Embarcadero, mais tant que personne ne se plaint aucune correction ne sera effectuée

    la Solution est d'identifier les fichiers manquant dans le répertoire release et de les copiers depuis le répertoire Debug

    Bien cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

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

Discussions similaires

  1. Différence entre debug et release ?
    Par ikuzar dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 09/09/2011, 00h01
  2. VS2008 Comportement différent entre debug et release
    Par Ardis dans le forum Visual Studio
    Réponses: 1
    Dernier message: 19/03/2011, 10h41
  3. C# XAML Code lu ou non entre debug et release
    Par glob04d dans le forum C#
    Réponses: 8
    Dernier message: 07/02/2011, 13h09
  4. Réponses: 2
    Dernier message: 20/06/2007, 11h27
  5. Différences entre Debug et Retail dans le fichier d'options
    Par zoubidaman dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/04/2005, 18h40

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