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:
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 #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 */
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:
et ca je ne comprend pas pourquoi !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
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![]()
Partager