Include et headers en langage C
Résolu/Fermé
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
-
10 mars 2010 à 20:33
Maknash Messages postés 646 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 15 juillet 2013 - 10 mars 2010 à 22:46
Maknash Messages postés 646 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 15 juillet 2013 - 10 mars 2010 à 22:46
A voir également:
- Header c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Langage basic gratuit - Télécharger - Édition & Programmation
13 réponses
cornalin
Messages postés
6
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
10 mars 2010
10 mars 2010 à 20:57
10 mars 2010 à 20:57
Salut
Il te faut utiliser dans les fichiers où tu dois utiliser myconio.h
#ifndef MYCONIO
#define MYCONIO
#include <myconio.h>
#endif
Voir : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15954-le-preprocesseur#ss_part_4 : #ifndef pour éviter les inclusions infinies.
Salutations
cornalin
Il te faut utiliser dans les fichiers où tu dois utiliser myconio.h
#ifndef MYCONIO
#define MYCONIO
#include <myconio.h>
#endif
Voir : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15954-le-preprocesseur#ss_part_4 : #ifndef pour éviter les inclusions infinies.
Salutations
cornalin
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:03
10 mars 2010 à 21:03
Merci pour ta réponse rapide.
Je viens d'essayer et de lire ce que tu m'as donné.
Ca me met toujours les mêmes erreurs.
Si j'ai bien compris, j'ai mis dans mon fichier design.c
et dans header.h
Ai-je mal compris ou fait quelque chose de travers?
Je viens d'essayer et de lire ce que tu m'as donné.
Ca me met toujours les mêmes erreurs.
Si j'ai bien compris, j'ai mis dans mon fichier design.c
#ifndef MYCONIO #define MYCONIO #include <myconio.h> /* mon code */ #endif
et dans header.h
#ifndef MYCONIO #define MYCONIO #include <myconio.h> /* mes prototypes */ #endif
Ai-je mal compris ou fait quelque chose de travers?
cornalin
Messages postés
6
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
10 mars 2010
10 mars 2010 à 21:06
10 mars 2010 à 21:06
Salut
/*mon code*/
/*mes prototypes*/
doivent être après le #endif
Salutations.
cornalin
/*mon code*/
/*mes prototypes*/
doivent être après le #endif
Salutations.
cornalin
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 mars 2010 à 21:25
10 mars 2010 à 21:25
Non, le #endif se met bien tout à la fin.
La protection se fait au niveau du fichier, pas au niveau du define.
La protection se fait au niveau du fichier, pas au niveau du define.
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:10
10 mars 2010 à 21:10
Ca me génère de toute façon l'erreur aussi.
Code::Blocks devient fou, je ne comprends vraiment pas, au début ça ne faisait pas ça...
Code::Blocks devient fou, je ne comprends vraiment pas, au début ça ne faisait pas ça...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 mars 2010 à 21:21
10 mars 2010 à 21:21
Bonsoir,
Que contient myconio.h ? C'est toi qui l'as écris ?
Sinon il s'agit peut-être d'une inclusion infinie, dans ce cas, il faut mettre :
#ifndef NOMDUFICHIER_H
#define NOMDUFICHIER_H
/*tout ton code*/
#endif
Et tu le fais pour tous tes header.
Par exemple, pour ton fichier myconio.h
#ifndef MYCONIO_H
#define MYCONIO_H
...
#endif
Bien sûr, tu peux choisir ta propre convention de nommage.
Je te conseille avant tout de mettre poster le message d'erreur que tu obtiens. Le message d'erreur indique une bonne piste généralement.
Que contient myconio.h ? C'est toi qui l'as écris ?
Sinon il s'agit peut-être d'une inclusion infinie, dans ce cas, il faut mettre :
#ifndef NOMDUFICHIER_H
#define NOMDUFICHIER_H
/*tout ton code*/
#endif
Et tu le fais pour tous tes header.
Par exemple, pour ton fichier myconio.h
#ifndef MYCONIO_H
#define MYCONIO_H
...
#endif
Bien sûr, tu peux choisir ta propre convention de nommage.
Je te conseille avant tout de mettre poster le message d'erreur que tu obtiens. Le message d'erreur indique une bonne piste généralement.
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:22
10 mars 2010 à 21:22
Je viens de voir que c'est pas MYCONIO mais _MYCONIO_H qu'il est mis dans le myconio.h.
Quand je remplaces avec ça, ça me met des autres erreurs, me disant que je n'ai pas déclaré les LIGHTGRAY etc...
Quand je remplaces avec ça, ça me met des autres erreurs, me disant que je n'ai pas déclaré les LIGHTGRAY etc...
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:26
10 mars 2010 à 21:26
Non non le myconio.h est téléchargé sur le net. On utilise ça à l'école donc je ne peux rien modifier là-dedans...
Voici le myconio.h :
Voici le myconio.h :
// Nom du fichier : myconio.h // Auteur : prof.geii37@laposte.net // Version : Novembre 2004 // Objectif : remédier à l'absence de certaines fonctions conio sous DevC++ /* Remarques : - Dev-C++ possède déjà une bibliothèque conio dans laquelle les fonctions « getch », « getche », « kbhit », « putch » et « ungetch » sont codées. - « textmode n'a pas été réécrite car les modes d'affichage prévus sous DOS n'ont pas de sens dans une fenêtre console Windows. - « window » n'a pas pu être écrite... seule une fonction « MYclrwin » a été codée pour remplacer l'appel de « window » suivi d'un « clrscr ». Toutefois la zone d'écriture à l'écran n'est pas limitée. - « MYwindow » redimensionne la fenêtre de la console. A noter : le comportement de cette fonction n'a aucun rapport avec celui de « window » de conio. */ #ifndef _MYCONIO_H_ #define _MYCONIO_H_ #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <windef.h> #include <winbase.h> #include <wincon.h> #ifdef __cplusplus extern "C" { #endif struct text_info { unsigned char winleft; unsigned char wintop; unsigned char winright; unsigned char winbottom; unsigned char attribute; unsigned char normattr; unsigned char currmode; unsigned char screenheight; unsigned char screenwidth; unsigned char curx; unsigned char cury; }; enum COLORS { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE } ; #define _NOCURSOR 0 #define _SOLIDCURSOR 1 #define _NORMALCURSOR 2 #define C40 1 void _setcursortype(int type); char *cgets(char *str); void clreol(); void clrscr(); void delline(); #define cprintf printf #define cscanf scanf /* Les fonctions « cprintf » et « cscanf » n'ont pas été réécrites, ceci est peut-être une erreur... En effet, « scanf » lit les données à partir de « stdin » et les fonctions d'entrée de la console lisent les données à partir de « STD_INPUT_HANDLE ». Or il semblerait que « fflush(stdin) ; » n'ait pas le même effet que « FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)) ; »... A suivre... */ int cputs(const char *str) ; int Gettext(int left, int top, int right, int bottom, void *destin) ; #define gettext Gettext /* Cette astuce a dû être utilisée car la ligne « int gettext(int left, int top, int right, int bottom, void *destin) ; » produit un message d'erreur (sous Dev-C++) ! */ void gettextinfo(struct text_info *_r); int MYgetch(void) ; int MYgetche(void) ; /* « getch », « getche » sont déjà définies dans <conio.h> (mingw). Cependant, au même titre que « getchar » (stdio) ne consomme pas le caractère <CR>, elles ne consomment pas le caractère saisi par l'utilisateur (c'est à dire : elles n'enlèvent pas le caractère du buffer d'entrée). « MYgetch », « MYgetche » vident le buffer. Attention, « MYgetch » et « MYgetche » n'enlèvent pas un caractère, mais tous les caractères disponibles. Grâce aux directives « #define » inclus dans MYconio.cpp, ce sont les fonctions « MYgetch » et « MYgetche » qui seront appelées si dans un source on fait appel à « getch » ou « getche ». */ void gotoxy(int x, int y); void highvideo(); void insline(); // kbhit : OK déjà défini dans <conio.h> (mingw) void lowvideo(); int movetext(int left, int top, int right, int bottom, int destleft, int desttop); void normvideo(); // putch : OK déjà défini dans <conio.h> (mingw) int puttext(int left, int top, int right, int bottom, void *source); void textattr(int _attr); void textbackground(int _color); void textcolor(int _color); /* BLINK (clignotement) ne fonctionne pas ! Par contre, il est possible d'utiliser les oucleurs LIGHT pour le fond d'écran, ce qui n'est pas le cas pour une application DOS.*/ /* « void textmode(int _mode); » n'a pas été réécrite, car les modes d'affichage DOS n'ont aucun sens dans une application console Windows. */ // ungetch : OK déjà défini dans <conio.h> (mingw) int wherex(); int wherey(); void MYclrwin(int left, int top, int right, int bottom); // efface une zone /* La fonction « window » de conio est fréquemment utilisée (suivi de « clrscr ») pour effacer une zone de l'écran et modifier sa couleur en fonction des attribus mis à jour par « textcolor » ou « textbackground ». « MYclrwin » permet cela, mais elle n'interdit pas d'écrire en dehors de cette zone.*/ void MYwindow(int left, int top, int right, int bottom); /* « MYwindow » permet de redimensionner la fenêtre de la console. Cependant, ce comportement, n'est pas celui de la fonction « window » de conio */ // void window(int left, int top, int right, int bottom); #ifdef __cplusplus } #endif #include <myconio.cpp> #endif //_MYCONIO_H_
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 mars 2010 à 21:33
10 mars 2010 à 21:33
Effectivement, il ne faut pas le modifier (c'est pour ça que je te demandais sa provenance).
De toute façon, tu constates qu'il y a bien le #ifndef #define ... #endif. Je rinsiste pour te dire que tu peux mettre le nom que tu veux (à toi de choisisr ta convention).
Par contre, sauf erreur de ma part, tu n'as toujours pas mis le message d'erreur retourné par ton compilateur...
De toute façon, tu constates qu'il y a bien le #ifndef #define ... #endif. Je rinsiste pour te dire que tu peux mettre le nom que tu veux (à toi de choisisr ta convention).
Par contre, sauf erreur de ma part, tu n'as toujours pas mis le message d'erreur retourné par ton compilateur...
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:38
10 mars 2010 à 21:38
En fait, je ne vois pas trop pourquoi mais le define du myconio.h se trouvant dans le header.h porte sur le main mais pas sur le design.c.
Voici les messages d'erreurs :
Voici les messages d'erreurs :
D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:5: warning: implicit declaration of function `textbackground' D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:5: warning: implicit declaration of function `MYclrwin' D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:6: warning: implicit declaration of function `textcolor' D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:13: error: `LIGHTGRAY' undeclared (first use in this function) D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:13: error: (Each undeclared identifier is reported only once D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:13: error: for each function it appears in.) D:\Documents and Settings\Kevin\Mes documents\Informatique\ISAT\Projet C\2010\camping\design.c:13: warning: implicit declaration of function `gotoxy' :: === Build finished: 3 errors, 4 warnings ===
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 mars 2010 à 21:43
10 mars 2010 à 21:43
Tu as bien enlevé le #ifndef... du design.c ?
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:46
10 mars 2010 à 21:46
Bah oui, la preuve dans mon source
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:45
10 mars 2010 à 21:45
Voici mes sources si besoin est :
Le main:
Le design:
Le header.h
Voilà, tout n'est pas complet évidement vu que c'est seulement le début pour le moment...
Le main:
#include "headers\header.h" #define N 5 int main(void) { int i, ok, lig; char car, pass[N]; design(1,1,80,25, DARKGRAY, WHITE); printf("Coucou beuh!"); design(1,5,80,23, WHITE, BLACK); affichPassword(); for(i=0;i<N && (car=getch())!='\r';i++) { pass[i]=car; printf("*"); } pass[i]='\0'; ok=password(pass); switch(ok) { case -1 : textcolor(LIGHTGREEN); printf("\nBienvenue root"); break; case 0 : textcolor(LIGHTRED); printf("\nErreur : Mauvais mot de passe. Vous n'etes pas autorise a entrer !"); break; case 1 : textcolor(LIGHTBLUE); printf("\nBienvenue user"); } return 0; }
Le design:
#include <stdio.h> void design(unsigned short l, unsigned short t, unsigned short r, unsigned short b, unsigned short bgcolor, unsigned short txtcolor) { textbackground(bgcolor); MYclrwin(l,t,r,b); textcolor(txtcolor); } void affichPassword(void) { int i, lig; textcolor(LIGHTGRAY); gotoxy(10,9); printf("%c",218); for(i=0;i<60;i++) printf("%c",196); printf("%c",191); for(i=0, lig=10;i<8;i++,lig++) { gotoxy(10,lig); printf("%c",179); } gotoxy(10,18); printf("%c",192); printf("Entrez le mot de passe svp : "); }
Le header.h
#include <stdio.h> #include <myconio.h> void design(unsigned short l, unsigned short t, unsigned short r, unsigned short b, unsigned short bgcolor, unsigned short txtcolor); void affichPassword(void); short password(char pass[5]);
Voilà, tout n'est pas complet évidement vu que c'est seulement le début pour le moment...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 mars 2010 à 21:51
10 mars 2010 à 21:51
Dans ton design.c, tu utilises des fonctions définies dans myconio.h et pourtant tu ne l'inclues pas dans ton design.h. D'où les avertissements que tu as reçus.
De plus (ça ne règlera pas le problème), l'astuce du #ifndef NOMDUFICHIER doit être faite sur tous les fichiers header, c'est une bonne habitude à prendre. Relis mon post #7 qui explique ceci.
Et reposte tes éventuels messages d'erreur s'il en reste.
De plus (ça ne règlera pas le problème), l'astuce du #ifndef NOMDUFICHIER doit être faite sur tous les fichiers header, c'est une bonne habitude à prendre. Relis mon post #7 qui explique ceci.
Et reposte tes éventuels messages d'erreur s'il en reste.
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 21:53
10 mars 2010 à 21:53
Je n'ai pas de design.h, le source que j'ai posté est un design.c, je n'ai donc pas de design.h, j'ai juste un header.h.
J'ai déjà essayé le ifndef, mais ça n'a rien changé du tout...
J'ai déjà essayé le ifndef, mais ça n'a rien changé du tout...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
10 mars 2010 à 22:00
10 mars 2010 à 22:00
J'ai effectivement fait une coquille que t'aurais pu rectifier...
Dans ton design.c tu utilises des fonctions déclarées dans myconio.h. Or dans ton design.c, tu n'as pas mis de #define <myconio.h>
Dans ton design.c tu utilises des fonctions déclarées dans myconio.h. Or dans ton design.c, tu n'as pas mis de #define <myconio.h>
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
10 mars 2010 à 22:04
10 mars 2010 à 22:04
Oui mais le #define <myconio.h> est déjà dans le header.h... Donc, si j'ajoute le myconio.h dans le design.c, il me mettra encore les messages d'erreur que j'ai mis ci-dessous...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
10 mars 2010 à 22:08
10 mars 2010 à 22:08
Non justement.
Tu dois mettre les .h utiles dans chacun de tes fichiers sources. Sinon le compilateur n'aura pas connaissance des fonctions définies dans les autres fichiers .c. Donc tu dois bien mettre #include <myconio.h> dans ton design.c.
C'est d'ailleurs pour cette raison que l'astuce #ifndef ... est nécessaire pour chacun des headers.
Tu dois mettre les .h utiles dans chacun de tes fichiers sources. Sinon le compilateur n'aura pas connaissance des fonctions définies dans les autres fichiers .c. Donc tu dois bien mettre #include <myconio.h> dans ton design.c.
C'est d'ailleurs pour cette raison que l'astuce #ifndef ... est nécessaire pour chacun des headers.
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
10 mars 2010 à 22:12
10 mars 2010 à 22:12
Ca me met toujours les mêmes erreurs, et je ne vois vraiment pas pourquoi...
Avant ça allait très bien, mais je ne vois pas pourquoi là, ça ne fonctionne plus...
Tant pi, je vais tenter en créant ma librairie .o avec le myconio et tout changer moi-même pour voir...
Ca devrait fonctionner ainsi
Avant ça allait très bien, mais je ne vois pas pourquoi là, ça ne fonctionne plus...
Tant pi, je vais tenter en créant ma librairie .o avec le myconio et tout changer moi-même pour voir...
Ca devrait fonctionner ainsi
Maknash
Messages postés
646
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 juillet 2013
184
10 mars 2010 à 22:01
10 mars 2010 à 22:01
J'ai testé un autre truc, j'ai créé un fichier design.h et j'ai mis les #ifndef et tout ça dedans, y compris dans le header.h.
Et voici les messages d'erreurs maintenant :
Et voici les messages d'erreurs maintenant :
:C:\MinGW\include\myconio.cpp:20: multiple definition of `_setcursortype' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:20: first defined here :C:\MinGW\include\myconio.cpp:30: multiple definition of `cgets' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:30: first defined here :C:\MinGW\include\myconio.cpp:54: multiple definition of `clreol' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:54: first defined here :C:\MinGW\include\myconio.cpp:71: multiple definition of `clrscr' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:71: first defined here :C:\MinGW\include\myconio.cpp:93: multiple definition of `cputs' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:93: first defined here :C:\MinGW\include\myconio.cpp:98: multiple definition of `delline' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:98: first defined here :C:\MinGW\include\myconio.cpp:135: multiple definition of `MYgetche' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:135: first defined here :C:\MinGW\include\myconio.cpp:147: multiple definition of `Gettext' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:147: first defined here :C:\MinGW\include\myconio.cpp:174: multiple definition of `gettextInfo' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:174: first defined here :C:\MinGW\include\myconio.cpp:197: multiple definition of `highvideo' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:197: first defined here :C:\MinGW\include\myconio.cpp:204: multiple definition of `insline' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:204: first defined here :C:\MinGW\include\myconio.cpp:230: multiple definition of `lowvideo' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:230: first defined here :C:\MinGW\include\myconio.cpp:237: multiple definition of `movetext' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:237: first defined here :C:\MinGW\include\myconio.cpp:259: multiple definition of `normvideo' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:259: first defined here :C:\MinGW\include\myconio.cpp:264: multiple definition of `puttext' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:264: first defined here :C:\MinGW\include\myconio.cpp:293: multiple definition of `textbackground' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:293: first defined here :C:\MinGW\include\myconio.cpp:299: multiple definition of `textcolor' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:299: first defined here :C:\MinGW\include\myconio.cpp:319: multiple definition of `MYclrwin' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:319: first defined here :C:\MinGW\include\myconio.cpp:346: multiple definition of `MYwindow' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:346: first defined here :C:\MinGW\include\myconio.cpp:289: multiple definition of `textattr' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:289: first defined here :C:\MinGW\include\myconio.cpp:190: multiple definition of `gotoxy' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:190: first defined here :C:\MinGW\include\myconio.cpp:311: multiple definition of `wherey' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:311: first defined here :C:\MinGW\include\myconio.cpp:305: multiple definition of `wherex' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:305: first defined here :C:\MinGW\include\myconio.cpp:123: multiple definition of `MYgetch' obj\Debug\main.o:C:\MinGW\include\myconio.cpp:123: first defined here :: === Build finished: 48 errors, 0 warnings ===
10 mars 2010 à 21:15
10 mars 2010 à 21:18