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 :

impossible de créer entete pré-compilée


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut impossible de créer entete pré-compilée
    Bonsoir à tous,
    j'ai une erreur incompréhensible dans un programme expert console :

    [C++ Avertissement] Dialogs.hpp(437): W8058 Impossible de créer l'en-tête pré-compilé : données initialisées dans l'en-tête.

    j'ai un fichier source sans aucune autre instruction que le source créé automatiquement mis à part l'instruction


    #include <degre.h>
    et le fichier en question qui comporte :

    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
    #ifndef __DEGRE.H__
    #define __DEGRE.H__
    
    // fichiers entête
    #include <math.h>
    
    // déclaration de la classe
    
    class Degre {
        private :
            Degre();
            Degre(float d);
            ~Degre();
        public :
            float _val;
    
    };
    
    DegreDegre(float d)
    {
        _val = d;
    }
    
    Cordialement à tous.
    Peter.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,

    C'est normal que tu es:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DegreDegre(float d)
    {
        _val = d;
    }
    Ca serait plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Degre::Degre(float d)
    {
        _val = d;
    }
    Cordialement,
    Benjamin

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    non, désolé, il s'agit d'une erreur de transcription (je me suis retrouvé avec un smileys à la place des :: et je les ai effacé par inadvertance.
    Le code source est correct avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Degre::Degre(float d)
    {
        _val = d;
    }

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,

    Ok, je me doutais que c'était une erreur de retranscription, mais dans le doute j'ai préféré te l'indiquer.

    Par contre tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #ifndef __DEGRE.H__
    #define __DEGRE.H__
    mais pas de

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    si, désolé c'est encore de ma faute. Il figure bien dans le fichier source mais pas dans la copie que j'ai faite.
    Ce n'est donc pas là la solution.

    Quand je double clique sur l'erreur, le programme ouvre le fichier 'dialog.hpp' à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern PACKAGE bool __fastcall PromptForFileName(AnsiString &AFileName, const AnsiString AFilter = "", const AnsiString ADefaultExt = "", const AnsiString ATitle = "", const AnsiString AInitialDir = "", bool SaveDialog = false);

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,
    Ok. Et sinon, il est normal que tes constructeurs et ton destructeur soient en privé?
    Cordialement,
    Benjamin

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    Vraiment désolé : effectivement c'est une anerie mais ca n'est toujours pas là l'erreur.
    Ca ne change rien au problème.
    J'ai abandonné l'application que j'étais en train de programmer pour essayer de comprendre le problème. D'ou ce petit programme test. Et je dois dire que ca me rend dingue de ne pas trouver ce qui se passe !
    Peter.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Cela n'est pas trés grave.
    Je suis désolé mais je n'arrive pas à reproduire ton erreur...
    Peux tu faire un copier coller complet des unités de ton programme test?
    Merci!
    Benjamin

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    voila le fichier haeder

    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
     
    #ifndef __DEGRE.H__
    #define __DEGRE.H__
     
    // fichiers entête
    #include <math.h>
     
    // déclaration de la classe
     
    class Degre {
     
        public :
            Degre();
            Degre(float d);
            ~Degre(){}
     
            float   getval() {return _val;}
     
        private :
            float _val;
    };
     
    Degre::Degre(float d)
    {
        _val = d;
    }
     
    #endif
    fichier cpp modifié pour le test :
    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
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #include  <degre.h>
    #include  <iostream.h>
    #pragma hdrstop
     
     
    //---------------------------------------------------------------------------
     
    #pragma argsused
    int main(int argc, char* argv[])
    {
        Degre d(125.3);
        char c;
     
        cout << "val de d : " << d.getval();
        cin >> c;
     
        return 0;
    }
    //---------------------------------------------------------------------------
    ca tourne parfaitement mais à la frappe de "Degre d( " au lieu d'afficher les prototypes du constructeur il affiche le code d'erreur :
    "[C++ Erreur] test_deg.cpp(1): Impossible d'invoquer les paramètres de code, du fait d'erreurs dans le code source"

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    Je songe sérieusement à réinstaller mon vieux c++ builder 5.

    C'est la première fois que je me sers de la version 6 installée depuis longtemps mais jamais utilisée.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Desolé mais je n'en ai aucune idée...
    J'ai le même problème que toi, et je ne comprends pas pourquoi...
    Par contre en définissant d comme pointeur, tu obtiens bien tes prototypes de constructeurs...

    Bonne soirée et bon courrage,
    Cordialement,
    Benjamin

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Par défaut
    Merci Benjamin,
    bonne soirée.
    Peter.

Discussions similaires

  1. Impossible de créer l'en-tête pré-compilé
    Par nbutin dans le forum C++Builder
    Réponses: 1
    Dernier message: 17/09/2010, 20h29
  2. Réponses: 8
    Dernier message: 14/01/2005, 09h06
  3. Réponses: 17
    Dernier message: 03/12/2004, 14h33
  4. Impossible de créer un MDE
    Par Gourouni dans le forum Access
    Réponses: 5
    Dernier message: 18/11/2004, 15h02
  5. [ADO] [DLL] Impossible de créer la connexion...
    Par Le Lézard dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/09/2004, 14h16

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