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 :

Problèmes d'inclusions ou déclarations ?


Sujet :

C

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Problèmes d'inclusions ou déclarations ?
    Bonjour !


    J'ai commencé une petite interface en SDL pour un programme, j'ai commencé par coder dans le même fichier mais maintenant je veut couper ce fichier en plusieurs modules et c'est là qu'est le problème !

    Oui, j'ai un fichier gui_btn.h comme suit:
    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
     
    #ifndef H_HF_GUI_BTN_180720061016
    #define H_HF_GUI_BTN_180720061016
     
     
    #include <SDL/SDL.h>
    #include "globals_data.h"
     
     
    /*
     * Taille et coordonnees de base d'un bouton d'enregistrement de phrases.
     */
    #define BTN_W 32
    #define BTN_H 32
    #define BTN_X 588
     
    /*
     * Image du bouton de sauvegarde.
     */
    #define SAVE_IMAGE "img/save.bmp"
     
     
    /*
     * Modele d'un bouton d'enregistrement de phrase.
     */
    typedef struct
    {
       SDL_Surface *  img;
       SDL_Rect       rect;
     
     
       /* Index de la phrase a enregistrer. */
       int index;
    }
    btn_st;
     
     
    /*
     * Creation d'un tableau de boutons de sauvegardes de phrases.
     */
    int make_btn_tab (win_st * st);
     
    /*
     * Liberation d'un tableau de boutons de sauvegardes de phrases.
     */
    void free_btn_tab (win_st * st);
     
    /*
     * Creation des boutons de sauvegardes de phrases.
     */
    void make_btn (btn_st * st, int index);
     
     
    #endif /* H_HF_GUI_BTN_180720061016 */
    et le fichier globals_data.h:
    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
     
    #ifndef H_HF_GLOBALS_DATA_180720061024
    #define H_HF_GLOBALS_DATA_180720061024
     
     
    #include <SDL/SDL.h>
    #include "gui_btn.h"
     
     
    /*
     * Couleur de transparence pour les bitmaps devant etres detoures.
     */
    #define R_ALPHA 255
    #define G_ALPHA 0
    #define B_ALPHA 255
     
     
    /*
     * Modele d'une zone de texte pour afficher une phrase.
     */
    typedef struct
    {
       SDL_Surface *  text_bk;
       SDL_Surface ** text;
     
       SDL_Rect       rect_bk;
       SDL_Rect    *  rect_text;
     
       int nb_lines;
    }
    txt_st;
     
     
    /*
     * Structure de la fenetre.
     */
    typedef struct
    {
       /*
        * Fenetre.
        */
       SDL_Surface * screen;
     
     
       /*
        * Image de fond.
        */
       SDL_Surface *  win_bk;
       SDL_Rect       win_rect;
     
     
       /*
        * Les boutons principaux de l'interface.
        */
       SDL_Surface *  btn_surf [3];
       SDL_Rect       btn_rect [3];
     
     
       /*
        * Nombre de phrases a afficher.
        */
       int nb_sentence;
     
     
       /*
        * Liste de boutons d'enregistrement.
        */
       btn_st * btn;
     
     
       /*
        * Liste des zone de texte.
        */
       txt_st * txt;
    }
    win_st;
     
     
    #endif /* H_HF_GLOBALS_DATA_180720061024 */

    Le problème viens du fait que par exemple dans l'entête des fonctions dans le fichier gui_btn.h, le type win_st n'est pas reconnu, j'ai une erreur du genre:
    gcc -Wall -W -pedantic -g3 -ggdb3 $(sdl-config --cflags) -c gui_btn.c main.c
    In file included from globals_data.h:6,
    from gui_btn.c:4:
    gui_btn.h:40: erreur: syntax error before «*» token
    gui_btn.h:45: erreur: syntax error before «*» token
    In file included from globals_data.h:6,
    from main.c:8:
    gui_btn.h:40: erreur: syntax error before «*» token
    gui_btn.h:45: erreur: syntax error before «*» token
    make: *** [c-zerothon] Erreur 1
    et ca je ne comprend pas pourquoi !

    Pour informations, le header gui_btn.h possède son module source et les deux header sont également inclus dans main.c


    Si vous pouviez m'éclairer ... merci d'avance
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,
    Je pense que c'est parce que y'a une espece de compilation croisée. Le module A à besoin du module B, et le module B a besoin du module A.

    Tu peux pas définir ta structure btn_st dans le fichier globals_data.h ?

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    C'était effectivement un problème de ce type, j'ai même du jongler correctement avec les inclusions vers les autres fichiers pour que la compilation passe sans problèmes ... merci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. [MFC] Problèmes d'inclusion d'une DLL
    Par CaptnB dans le forum MFC
    Réponses: 1
    Dernier message: 12/05/2006, 18h01
  2. Réponses: 2
    Dernier message: 25/04/2006, 17h08
  3. Problème d'inclusions multiples
    Par Le Furet dans le forum C
    Réponses: 2
    Dernier message: 03/10/2005, 23h59
  4. Problème d'inclusion de pages.
    Par julien85 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 01/05/2005, 18h06
  5. Problème d'inclusion
    Par degreste dans le forum MFC
    Réponses: 5
    Dernier message: 27/01/2004, 00h56

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