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

Visual C++ Discussion :

"error C2143: syntax error : missing ';' before '*'" systématique


Sujet :

Visual C++

  1. #1
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut "error C2143: syntax error : missing ';' before '*'" systématique
    Bonjour,

    je rencontre systématiquement l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C2143: syntax error : missing ';' before '*'
    Le problème c'est qu'il n'y a pas d'erreur au niveau de mes inclusions.

    J'arrive à ne plus avoir le message l'erreur et compiler si :
    1/ je commente la ligne d'inclusion qui provoque l'erreur
    2/ je retente de compiler ce qui provoque des erreurs de définition, ce qui est normal si l'inclusion n'est pas faite (le projet n'est donc toujours pas compilé)
    3/ je décommente ma ligne et je compile : miracle ça marche alors qu'au final je n'ai rien changé !!!

    Par contre dès que je modifie quoi que ce soit dans mon code je suis bon pour refaire la procédure ci-dessus

    J'aimerai quand même bien me débarrasser de cette erreur qui est pour le moins lourdingue. Si quelqu'un sait comment m'en sortir je suis grandement preneur.

    Merci d'avance.

    PS : je travaille avec Visual C++ 2008.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Ce message est typique d'un type non défini.

    A vue de nez et vu ce que tu décris, je dirais que tu as un problème dans tes includes.

    Est ce que par hasard, tes gardes d'inclusion sont correctes (il n'y aurait pas un copié/collé qui ferait que 2 .h aient la même garde d'inclusion, ne pas rire, je l'ai eu et c'est pénible à trouver).

    Peut tu poster ton code (surtout les .h et le .cpp qui les utilise.

  3. #3
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Merci pour ta réponse.
    Cependant j'ai peur de ne pas bien comprendre ce que tu veux dire par "gardes d'inclusion". Insertion de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef
    #define
    #endif
    peut-être ?

    Pour en revenir à mon problème je vais expliquer simplement ce qui se passe :
    - j'ai une erreur sur un ligne
    - je commente le ligne
    - je la décommente
    - l'erreur a disparue
    => l'erreur ne semble donc pas en être une car sans changement elle a disparue


  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Oui, je parlais de tes gardes d'inclusion. Regarde les bien au cas où, dans 2 .h différents tu aurais la même garde.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifdef
    #define
    ...
    #endif

  5. #5
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    J'ai sécurisé tous les headers comme tu me l'as conseillé en prenant soin de ne pas faire de copier/coller malheureux, mais ça n'a rien changé...

    L'erreur (si ce n'est "bug") persiste toujours

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Il est gros ton projet, tu peux le mettre en attachement ?

  7. #7
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Oui malheureusement il est assez gros, de plus pour une question de confidentialité il me serait impossible de le dévoiler


    L'erreur est à la ligne suivante du header de la fenêtre principale (je travaille avec les MFC) :
    variable protected

    Dans ce même fichier j'ai l'include suivant :
    Voici l'erreur complète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1>c:\documents and settings\abder\mes documents\visual studio 2008\projects\agenda simplifié\agenda simplifié\agendadlg.h(66) : error C2143: syntax error : missing ';' before '*'
    1>c:\documents and settings\abder\mes documents\visual studio 2008\projects\agenda simplifié\agenda simplifié\agendadlg.h(66) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\documents and settings\abder\mes documents\visual studio 2008\projects\agenda simplifié\agenda simplifié\agendadlg.h(66) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    Pour rappel l'erreur disparait si je commente, tente de compiler puis décommente la ligne; et revient si je modifie ultérieurement quoi que ce soit au projet.


  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Est ce que tu peux poster NoteDlg.h ?

    et le nom des gardes d'inclusion que tu as mis

  9. #9
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    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
    #pragma once
     
    #ifndef NOTEDLG_H
    #define NOTEDLG_H
     
     
    #include "AgendaDlg.h"
    #include "BoutonNote.h"
     
    #define        WM_DEL_NOTE        (WM_USER+2)
     
    #define        LARGEUR_NOTE        180
    #define        HAUTEUR_NOTE        100
    #define        SEPARATION_NOTE        10
    #define        HAUTEUR_SCROLL        20
    #define        COTE_REPERE            50
     
    // CNoteDlg dialog
     
    class CNoteDlg : public CDialog
    {
        DECLARE_DYNAMIC(CNoteDlg)
     
        //définition de la liste du texte du bouton
        typedef struct list{
            CBoutonNote * note;
            struct list * next;
        }ListeNotes;
     
    public:    
        CBoutonNote * m_boutonCourant;
        CRect m_rectCourant;
     
        CNoteDlg(CWnd* pParent = NULL);   // standard constructor
        virtual ~CNoteDlg();
     
    // Dialog Data
        enum { IDD = IDD_NOTEDLG };
     
        virtual BOOL OnInitDialog();
        void initPosition(void);
        void DrawNotes(void);
        void Update(CTime jour);
        afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
        afx_msg LRESULT SelectNote(WPARAM vParam, LPARAM lParam);
        afx_msg LRESULT DelNote(WPARAM vParam, LPARAM lParam);
        afx_msg void OnSize(UINT nType, int cx, int cy);
        afx_msg BOOL OnEraseBkgnd(CDC* pDC);
        afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
        virtual BOOL PreTranslateMessage(MSG* pMsg);
    protected:
        CStatic m_matin;
        CStatic m_midi;
        CStatic m_soir;
        CScrollBar m_scrollbar;
        int max_pos_scroll, min_pos_scroll;
     
        ListeNotes * m_listenotes;
        int nb_notes, décalage;
     
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
     
        DECLARE_MESSAGE_MAP()
     
        void AddNote(int ID, CString lib, COLORREF bk, CString deb, CString fin);
        void DelNote(ListeNotes * cible);
    };
     
    #endif

  10. #10
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    J'avoue ne plus avoir d'idée.

    Peut être supprimer le "#pragma once" qui fait double emploi avec tes gardes d'inclusions (et qui peut être met le bazar) mais sans conviction

  11. #11
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Aucun changement

    J'ai aussi essayé de supprimer le .ncb, sans effet non plus. Peut-être un problème au niveau des paramètres du projet, mais sans conviction car l'erreur est vraiment apparue du jour au lendemain.

    Si quelqu'un a une idée n'hésitez pas.



  12. #12
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Je me traine toujours l'erreur si j'interviens sur la classe CNoteDlg Je suis alors obligé de faire la manip magique pour que ça passe.
    La compilation se déroule sans accro sinon.

    Je suis toujours preneur si quelqu'un sait ce qui pourrait provoquer ce problème.

  13. #13
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    Je me traine toujours l'erreur si j'interviens sur la classe CNoteDlg Je suis alors obligé de faire la manip magique pour que ça passe.
    La compilation se déroule sans accro sinon.

    Je suis toujours preneur si quelqu'un sait ce qui pourrait provoquer ce problème.
    Typiquement une inclusion circulaire.

    Comme il y a un "#ifndef ... #define", ça ne provoque pas d'erreur. Mais suivant l'ordre de compilation, le type n'est pas défini.

  14. #14
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Comme il y a un "#ifndef ... #define", ça ne provoque pas d'erreur
    justement si d'où mon problème (voir quelques posts plus haut).

    Typiquement une inclusion circulaire
    J'ai des inclusions circulaires, mais protégées. Dans tous les cas ces inclusions sont parfaitement logiques et indispensables.

    Que faire pour corriger ce soucis ? Merci d'avance.

  15. #15
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Ben le problème semble identifié, maintenant, il faut tout regarder. Comme tu ne peux pas montrer tout ton projet, je dirais que la balle est dans ton camp.

    Demande autour de toi si quelqu'un peux regarder le projet avec toi. Je pense que à ce niveau, ce qu'il te faut, c'est un oeil neuf et critique.

  16. #16
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Je viens de faire un test en passant la variable, sur laquelle survient l'erreur, en public (elle était protected avant) : l'erreur est permanente après, et la feinte pour compiler qd même ne fonctionne plus.

    J'avoue être un peu perplexe là, car je ne vois pas en quoi ça peut avoir un effet sur les inclusions

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    J'ai des inclusions circulaires, mais protégées. Dans tous les cas ces inclusions sont parfaitement logiques et indispensables.
    L'inclusion de "BoutonNote.h" dans ton code du post #9 n'est pas indispensable: Une simple déclaration de classe (sans sa définition) suffit.

  18. #18
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    L'inclusion de "BoutonNote.h" dans ton code du post #9 n'est pas indispensable: Une simple déclaration de classe (sans sa définition) suffit.
    enfin les fenêtres risquent d'avoir du mal à s'instancier sans les définitions (à ne pas confondre avec "déclarations") des éléments qui les composent

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Justement: Ta classe CNoteDlg ne comprend aucun membre de type CBoutonNote, ni d'un type incluant CBoutonNote. Elle ne contient que des pointeurs, donc tu peut retarder l'inclusion de BoutonNote.h au moins jusqu'à NoteDlg.cpp.

  20. #20
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Je viens de tester ce que tu m'as dit et l'erreur est la même

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. runtime error 3075 syntax error (comma)
    Par pra3t0r dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 14/06/2011, 13h56
  2. Réponses: 2
    Dernier message: 05/10/2009, 16h43
  3. error near "(" :syntax error
    Par elekis dans le forum SQLite
    Réponses: 1
    Dernier message: 26/09/2008, 23h37
  4. Réponses: 7
    Dernier message: 18/03/2008, 17h58
  5. Réponses: 14
    Dernier message: 11/07/2006, 16h11

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