casanoveg
Messages postés17Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention19 janvier 2005
-
8 janv. 2005 à 21:29
casanoveg
Messages postés17Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention19 janvier 2005
-
11 janv. 2005 à 20:27
Je souhaitais faire ma première demo pour un jeu qui me tient à coeur,
mais j'ai un problème avec les #include. J'ai voulu faire mon programme
sur plusieurs fichiers, et donc utiliser #include "fichierperso.h".
L'utilisation des <> pour inclure les bibliothèques fonctionnent,
mais les "" pour inclure mes fonctions perso ne fonctionnent pas.
Je programme avec Dev-c++ 4.9.8.0 et la bibliothèque Allegro.
J'espère sortir de ce problème, parce que je ne souhaite pas faire un
programme dans un seul fichier, la démo devant grandir pour devenir un
jeu complet au fil du temps.
casanoveg
Messages postés17Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention19 janvier 2005 9 janv. 2005 à 11:08
Dans mes .h je mets mes fonctions, un fichier pour les fonctions
déplacement clavier, action clavier, action souris, un autre fichier
pour les fonctions animation, timer d'animation, affichage, un autre
pour les déclaration, une sorte de bibliothèque perso pour pas
encombrer mon fichier principal. Dans mon fichier principale, le seul
.cpp, je mets la fonction int main() qui installe les fonctions
Allegro, et execute mes fonctions perso dans une boucle while.
Le programme fonctionne si tout est placé dans ce fichier, mais mon
problème vient uniquement de l'utilisation des "" avec un include. Mes
fichiers sont dans le même dossier que le fichier principal, pour
commencer. Par la suite je souhaite intégrer des noms de dossier pour
que le prog retrouve les fichiers soigneusement rangé. Mais pour
l'instant, j'ai tout mis dans le même dossier.
Lorsque je compile, la ligne 2 où j'ai placé mon include : #include "matrice.h" : devient rouge et le compilo m'indique ceci :
2 | C:\Votre empire\main.cpp | In file included from main.cpp
| C:\Votre empire\matrice.h
| [Warning] In function `void
fonction_grille()':
void fonction_grille() c'est le nom de la fonction se trouvant dans le fichier que je souhaite inclure.
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 9 janv. 2005 à 17:55
Faut jamais mettre de fonctions dans des .h, à tous les coups tu es
victime d'un truc comme "multiple definitions of function XXX" non ?
Remède : met les variables et le code de tes fonctions dans un .c à
part, et dans ton .h ne garde que les déclarations de tes
variables/fonctions avec la directive "extern", qui indique que la
fonction/variable est dans un autre fichier que celui dans lequel elle
apparait.
casanoveg
Messages postés17Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention19 janvier 2005 11 janv. 2005 à 20:27
A y est mon problème est résolu, merci pour votre aide :)
J'ai mis mes déclarations dans un .h et l'ai inclut avant le fichier où
ce trouve mes fonctions. C'était vraiment une erreur bêbête, le compilo
lisait ma fonction avant d'avoir lu mes déclarations, puisque ces
derniers étaient dans le fichier principal, écrit après l'inclusion
évidement
Je suis content de pouvoir programmer tout en respectant mon petit rangement, c'est plus pratique