J'essaye de me faire une petite bibliothèques de fonction avec SDL [C] - C - Programmation
Marsh Posté le 26-11-2008 à 09:58:12
Ton énumération des couleurs, et ton tableau couleurs, doivent être déclarés dans graphique.h, pas dans graphique.c
Ou tu met un extern devant Uint32 couleurs[NB_COULEURS]; de main.c mais ça ne résout pas l'innaccessibilité de l'énumération des couleurs.
Marsh Posté le 26-11-2008 à 10:13:12
Ah d'accord je ne savais pas que ça se faisait de mettre les varialbes globales etc dans le .h mais ça résout bien des problèmes.
Donc j'ai modifié ainsi:
graphique.c:
Code :
|
graphique.h
Code :
|
Mais si je compile il va me dire que dans graphique.c "ecran" n'est pas déclaré, alors que j'ai bien inclut graphique.h
Marsh Posté le 26-11-2008 à 10:18:56
C'est quoi exactement ce "#define POINTEUR_SURFACE ecran" ???
Marsh Posté le 26-11-2008 à 10:20:59
ben dans le main.c
Je fais "ecran=SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);"
Et donc si quelqu'un a envie de nommer la surface différemment que "ecran" ben il a juste à changer le define au lieu de changer tout les pointeurs un par un.
Marsh Posté le 26-11-2008 à 10:52:06
Ha ouais mais nan !
Tu devrais revoir les notions de compilation et de pré-compilation, toussa.
Marsh Posté le 26-11-2008 à 10:57:58
Ben y a le préprocesseur il va me changer mon define en "ecran" puis me mettre graphique.h dans graphique.c et main.c donc la variable ecran va bien être définit dans graphique.c et main.c, donc il va compiler ces deux fichiers puis va les linkers et hop.
Nan ?
Marsh Posté le 26-11-2008 à 11:00:36
Non. Le préprocesseur, il va arriver à rien car à ce moment là, "ecran" n'est rien !
Edit : #define, c'est pas pour déclarer des variables !!!
Marsh Posté le 26-11-2008 à 11:05:19
Euh je comprend pas.
#define est bien censé transformer toutes les occurences de "POINTEUR_SURFACE" en "ecran" ?
Edit: j'ai oublié un N à "POINTEUR_SURFACE"
Maintenant ça compile mais j'ai une erreur de segmentation à l'éxecution
Marsh Posté le 26-11-2008 à 09:46:01
Salut,
J'essaye de me faire une petite bibliothèques de fonctions (ou procédures plutôt) graphique avec la SDL, mais je rencontre un problème.
C'est la première fois que j'utilise SDL et que je fais plusieurs fichier donc j'ai un peu de mal.
Les fonctions ne sont pas toutes de moi, je les ai prises sur developpez.com. (évidemment elles sont libres de droits).
Donc voici mes fichiers:
graphique.c:
graphique.h
main.c
Mon problème c'est que si je veux utiliser une fonction de grahpique.c, comme j'ai voulu le faire à la ligne 42 de main.c "barre(10,10,100,10, couleurs[C_BLEU]);"
Ben le compilo va me dire qu'il ne connait pas couleurs et C_BEU, et je vois pas comment je peux contourner ce problème...
Merci de votre aide.