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

probleme de définition multiple


Sujet :

C

  1. #21
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    En fait, j'utilise des classes dans mon programme appartenant à des .h qu'il faut que j'integre... donc, si je mets pas en .cpp ca marche pas du tout... J'ai des centaine de syntax error...

    Maintenant si je mets en .cpp, j'ai moin de syntax error mais ils concernent les struct contenus dans mes .h....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\traitementPaquetsRTP.h(17) : error C2061: syntax error : identifier 'flux_header'
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\fenetrePrincipale.h(71) : error C2143: syntax error : missing ';' before '*'
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\fenetrePrincipale.h(71) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\fenetrePrincipale.h(71) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\pcapHandler.h(220) : error C2378: 'flux_header' : redefinition; symbol cannot be overloaded with a typedef
            c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\fenetrePrincipale.h(71) : see declaration of 'flux_header'
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\pcapHandler.h(224) : error C2143: syntax error : missing ';' before '*'
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\pcapHandler.h(224) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    c:\documents and settings\im\desktop\etherealplayer_kimarchepas_acausedesinclude\pcapHandler.h(224) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    Ceci est logique car il doit pensé que mes struct sont des classes et qu'elles sont mal définies...

    Comment puis je regler ce probleme... Je pense que c'est le dernier... Merci encore pour votre aide !!

  2. #22
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gdpasmini
    En fait, j'utilise des classes dans mon programme
    Diable ! Et pourquoi tu postes dans le forum C ? Le forum C++, c'est à coté...

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    oui, je suis dsl mais mon prog est codé à 95% en C.... J'utilise 2 ou 3 trucs en c++ qui nécéssite juste que je nomme mes prog en .cpp.....

  4. #24
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gdpasmini
    oui, je suis dsl mais mon prog est codé à 95% en C.... J'utilise 2 ou 3 trucs en c++ qui nécéssite juste que je nomme mes prog en .cpp.....
    Marche pas.

    • soit tu écris une application 100% C et c'est une application C
    • soit c'est une application C++ avec des modules en C (autant que tu veux).

    Mais du code C ne peut pas appeler du code C++. C'est impossible. Le contraire est possible à coup de extern "C".

  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    oki.. mais je n'ai jamais apelé mes fonction avec extern C.... ca a toujours marché jusqu'a présent...

    Je comprends pour le C/C++ Ce que je fais, c'est donc du c++...

    Je crois avoir trouvé la solution, il faut enlever les typedef (qui marchait tres, soit dit en passant, avant que je modifie les includes...) et que je mette struct devant toutes les declarations de ces struct...

    Mais maintenant que j'ai fais ca, j'ai des erreurs de link LNK2005 trucbidule already defined in machintruc.obj...

    C'est vraiment lacant...

  6. #26
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    Non ca y est c bon...

    En fait j'avais declarer mes struct ou mes union comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    typedef struct 
    {
      int monInt;
      char monChar;
    } maStructure;
    Mais ca, le compilo n'aime pas du tout !!

    il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct maStructure
    {
      int monInt;
      char monChar;
    };
    Et lors de la declaration d'une structure, il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct maStructure uneNewStruct;
    et ca, ca marche... ouf !!!!

    Merci encore pour votre aide a tous !!

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Mais du code C ne peut pas appeler du code C++. C'est impossible. Le contraire est possible à coup de extern "C".
    Là, je me dois de te contredire.
    Une fonction C++ peut elle-même être déclarée et définie en extern "C"...
    Même si évidemment, il y a des limites à son interface...
    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.

  8. #28
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    oki.. mais il est aussi possible de ne ps utiliser le extern C pour declarer des fonctions C, non ??

    En tout cas, chez moi ca semble marcher tres bien.. Mais je me plante peut etre...

    D'autre part, j'ai enlever l'entete précompiler stdafx (je vois pas bien a koi ca sert ds mon prog win32) et j'ai un warning que j'avai reussi a enlever grace à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define _CRT_SECURE_NO_DEPRECATE 1
    définit ds mon stdafx.h justement....

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    Je crois bien que _CRT_SECURE_NO_DEPRECATE n'a pas besoin d'avoir une valeur (il suffit qu'il soit défini).

    Définis-le directement dans les options de ton projet, c'est plus simple.
    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.

  10. #30
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Citation Envoyé par gdpasmini
    oki.. mais il est aussi possible de ne ps utiliser le extern C pour declarer des fonctions C, non ??

    En tout cas, chez moi ca semble marcher tres bien.. Mais je me plante peut etre...

    D'autre part, j'ai enlever l'entete précompiler stdafx (je vois pas bien a koi ca sert ds mon prog win32) et j'ai un warning que j'avai reussi a enlever grace à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define _CRT_SECURE_NO_DEPRECATE 1
    définit ds mon stdafx.h justement....
    En lisant, j'ai l'impression que tu bricoles du C ou du C++. L'avantage et le désavantage du C++ c'est d'etre très permissif comparé a d'autre langage orienté objet. Oui en C++ tu peux faire du C, pour moi la rigueur est de différencier C et C++.
    Exemple en C++ tu peux utiliser des printf, il est quand meme préferable d'utiliser des cout.

  11. #31
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    oki.. mais on met ca ou ds les options de visual ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    Project properties -> C/C++ -> Preprocessor
    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.

  13. #33
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    oki.. Merci beaucoup !!!!

    Bon, je vais etre encore super chiant, mais j'ai d'autres warning que je ne parviens pas à virer... dans le type de fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    boutonLecture = CreateWindowEx
    (WS_EX_TRANSPARENT, "BUTTON","Recherche de flux médias",WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_CENTER, 0.7
    *taille_fenetre_principale.largeur, 0.75*taille_fenetre_principale.hauteur, 70,
     90, hwnd,(HMENU)BOUTON_LECTURE,hinst,0);
    Le warning est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
    Ce warning concerne l'un des 4 derniers arguments et un cast créé une erreur...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    Ce warning concerne l'un des 4 derniers arguments et un cast créé une erreur...
    Perdu!

    Il concerne les 0.7*taille_fenetre_principale.largeur et 0.75*taille_fenetre_principale.hauteur
    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.

  15. #35
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    en fait, c'est le compilateur qui m'indique que l'erreur se trouve sur ces arguemnts....

    J'ai fais un cast (double) sur les paramètres que tu m'as di et ca ne change rien...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    normal, c'est déjà en double : il faut caster explicitement en int.
    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.

  17. #37
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    aie aie aie madre de dios... Mais si je fais ca, les éléments de mon interface dans la rumba !!

    Plus rien n'est a sa place !!!

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    tu n'aurais pas oublié des parenthèses pour ton cast ?
    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.

  19. #39
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Par défaut
    et non meme pas !!

    Mais ca y est, ca commence a se regler.. J'ai mis un cast (int) et ca a lair de fonctionner.. Ce qui m'embetai etai que les coordonnées etai des entiers du coup, ce qui ne m'arrangeai pas.. mai de toute facon, les coordonnées des objets de la fenetre sont surtout important ds le movewindow et non ds le createwindow...

    Jespere que je suis a peu pres clair..

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 403
    Par défaut
    Ce qui m'embetai etai que les coordonnées etai des entiers du coup, ce qui ne m'arrangeai pas..
    Pourquoi ça ne t'arrangeait pas ?
    Un entier représente un pixel, y'a rien de plus petit...
    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.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Probleme d'imbrication multiple
    Par Gwipi dans le forum Requêtes
    Réponses: 5
    Dernier message: 27/03/2006, 18h36
  2. définition multiple
    Par elekis dans le forum C++
    Réponses: 3
    Dernier message: 01/03/2006, 17h32
  3. [g++] Définitions multiples
    Par GLDavid dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/12/2005, 17h04
  4. Probleme de définition de lien Formulaire-Module
    Par cchampion2fr dans le forum Access
    Réponses: 20
    Dernier message: 08/09/2005, 11h05
  5. Réponses: 22
    Dernier message: 05/07/2005, 01h04

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