begin process at 2012 05 29 15:22:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb avec les fichiers cpp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb avec les fichiers cpp

dimanche 26 décembre 2004 à 20:00:29 | pb avec les fichiers cpp

Saros

Membre Club
Bon là c'est la première fois que ça me le fait.
Je bosse sous VC++6.
J'ai un projet avec trois fichiers :
estack.h
et
main.cpp
Rpn_Alg.cpp

J'ai déclaré et défini dans Rpn_Alg.cpp une fonction, nommée AlgToRpn.
Lorsque je veux l'utiliser dans main.cpp, j'obtient Undeclared Identifier.

Heeeeelp !

Saros
dimanche 26 décembre 2004 à 20:27:06 | Re : pb avec les fichiers cpp

julienbj

Tu as mis le prototype de ta fonction dans ton header?
Savon
dimanche 26 décembre 2004 à 20:29:29 | Re : pb avec les fichiers cpp

Saros

Membre Club
En fait le problème, je crois, c'est que les fonctions contenues dans Rpn_Alg.cpp ne sont pas considérées comme publiques.
Mais je ne sais toujours pas comment faire, à vrai dire c'est mon premier projet sérieux en C++, mes connaissances sont -disons limitées...

Merci d'avance.

Saros
dimanche 26 décembre 2004 à 20:30:18 | Re : pb avec les fichiers cpp

Saros

Membre Club
Le protoype de la fonction est dans Rpn_Alg.cpp
Scuse, j'avais pas vu ton message ^^
dimanche 26 décembre 2004 à 20:37:33 | Re : pb avec les fichiers cpp

julienbj

ok, et dans ton main tu inclues quoi?
Savon
dimanche 26 décembre 2004 à 21:11:52 | Re : pb avec les fichiers cpp

BruNews

Administrateur CodeS-SourceS
Mets les protos des fonctions a rendre publiques dans un Rpn_Alg.h et dans les cpp qui ont besoin d'acceder, tu mets #include "Rpn_Alg.h"

ciao...
BruNews, MVP VC++
dimanche 26 décembre 2004 à 21:34:33 | Re : pb avec les fichiers cpp

Saros

Membre Club
Il n'y a pas moyen de pouvoir rendre publiques les fonctions de Rpn_Alg.cpp ?
J'ai l'impression que c'est un peu limitatif, dans un gros projet par exemple, de ne pas pouvoir avoir des fonction globales à tous les fichier CPP...
Comme en VB, quand on veut séparer des fonctions, on les écrit dans différents modules, puis on peut les rendre publiques ou non par la suite.

Sinon, j'avais déjà essayé de mettre Rpn_Alg en .h, c'était un peu prise de tête. J'ai fini par mettre tout le code de Rpn_Alg dans main.cpp.

Merci beaucoup ;

Saros
dimanche 26 décembre 2004 à 21:59:39 | Re : pb avec les fichiers cpp

julienbj

>>Proposition:
Tu n'as qu'à créé un .h dans lequel tu mets les prototypes des fonctions que tu veux rendre globales à tous tes fichiers C ou CPP et tu l'inclues dans chacun de tes fichiers C et CPP
L'inconvénient de cette méthode, c'est que tes fichiers objets ne seront pas supers beaux!

>>Explication rapide de la compilation et du linkage
Sinon, en quelques mots pour t'expliquer l'utilité d'un header!
Il faut que tu indiques au compilateur la forme de tes fonctions (cad le prototype) pour qu'il puisse vérifier que lors de tes appels, tu passes les bons paramètres! Après cette phase de compilation (réalisation d'un fichier objet) il y a le linker qui entre en jeu! Celui-ci lie les fichiers objets entre eux. C'est donc lui qui recherche où est définie ta fonction.
C'est loin d'être limitatif, tu fais tout ce que tu veux avec ça!

>>Réaction à ce que tu dis
Par contre dans ce que tu dis plus haut, j'ai l'impression que tu avais juste changer l'extension de ton fichier cpp en un .h
Ce n'est plus du tout la même chose, même si c'est compilable!
Dans un header tu mets des inclusions à d'autre fichier h, tu mets des #define, tu définis des structures, tu mets les PROTOTYPES de tes fonctions, mais jamais tu mets du code!
Si tu as des questions sur les headers, hésite pas! Je ferais mon possible pour répondre!

>>ATTENTION DANGER
Ah oui, il faut aussi te dire qu'il faut que tu ne passes qu'une et une seule fois dans ton header pendant la compilation! Une fois que les données définies à l'intérieure de ton header sont définies, elles n'ont plus à être redéfinies!
Tu dois mettre en haut de ton header (je sais pas si c'est la seule méthode)
#ifndef NOMFICHIER_H_ //par exemple
#define NOMFICHIER_H_

et à la fin du fichier H:
#endif
comme ça tu définis le contenu du .h uniquemenbt si NOMFICHIER_H_ n'est pas défini, donc la première fois que tu rentres dans le .h, tu le définis, et ensuite ben tu sors du #ifndef

Bon, j'espere que c'est clair, c'est jamais évident à expliquer!
Si jamais j'ai fait des erreurs ou dit des choses à peine juste, hésiter pas!
Savon


Cette discussion est classée dans : pb, fichiers, cpp, main, rpn


Répondre à ce message

Sujets en rapport avec ce message

Include "je_comprend_pas_grand_chose.h" [ par neodelphi ] Bonjour tout le monde... C'est la première fois que je post un message ici, arf g le trac lol Bon je viend de me mettre au C++ pour me prog un jeu en partage de variable entre plusieurs fichiers [ par Spiffou ] salut à tous,j'ai un ptit pb sur vc6:j'ai un prog comportant plusieurs fichiers:main.cpp // code du mainfonction.cpp // code des fonc probleme avec string [ par slyfer07 ] Bonjour tout le monde,je débute en C++ et je suis en train de réaliser mon premier projet (j'utilise DevC++). Celui-ci comprend mon main.cpp, ainsi qu Plusieurs fichiers sources [ par nisaloncaje ] ReBonjour, dans mon projet, je dispose d'un fichier main.cpp qui contient la fonction main et les déclarations de classe.Je pensais mettre, dans un fi compile à plusieurs fichiers [ par ntrvdonett ] Bonsoir,Au risque de faire rire, j'ai un problème de compilation en mettant une class dans un fichier à part, je rame depuis deux heure pour rien, et Utilisation variable dans 2 fichiers CPP [ par mahojul ] Bonjour à tous, Je travaille avec Windows Xp Pro SP3 et Visual C++ 6.0. J'ai du reprendre un projet "VC++" d'un ancien collègue contenant plusieurs fi Problème en C++ [ par Farqual ] Bonjour, je viens de me lancer dans le cpp mais j'ai un problème au niveau de la compilation d'un fichier source en un .exe j'apprend avec un livre et Création d'une librairie à partir des .c et .h [ par RV2931 ] Bonjour,J'utilise actuellement une "librairie", ou plutôt ses sources .c et .h, et j'aurai voulus éviter d'inclure les 36 fichiers à chaque projet qui Erreur sous visual [ par alphaone ] Je tante de compiler mon programme sous visual, avant je le fessait avec mingw et cella marché trés bien, voila mes erreurs:1>.\main.cpp(375) : error [cpp] cherche conseil pour choix d'une base de données [ par Daemonight ] Bonjour tout le monde, ca fait un petit moment que je fais du c/cpp, et ce matin, j'ai fait un peu le bilan de ce que je savais faire. De ce bilan est


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales