cs_Havy
Messages postés7Date d'inscriptiondimanche 12 juillet 2009StatutMembreDernière intervention12 août 2009
-
12 juil. 2009 à 12:32
cs_Havy
Messages postés7Date d'inscriptiondimanche 12 juillet 2009StatutMembreDernière intervention12 août 2009
-
12 juil. 2009 à 19:00
Bonjour, je voudrais savoir si il est possible de changer de point d'entrée du programme.
Tout d'abord, voici ce que je voudrais faire :
Le premier programme que j'ai appelé "Programme1.cpp"
#include
using namespace std;
void Bonjour()
{
cout<< "Bonjour tout le monde !";
}
int main()
{
Bonjour();
}
Le deuxième programme que j'ai appelé "Programme2.cpp"
#include
#include "Programme1.cpp" // Ici j'inclus le code source de mon premier programme car je voudrais
// réutiliser la fonction Bonjour dans mon deuxième programme
using namespace std;
int main()
{
Bonjour();
}
Bon, je voudrais savoir s'il est possible en effet d'inclure Programme1.cpp dans Programme2.cpp et de pouvoir compiler sans que l'éditeur de liens me dise comme quoi la fonction main est redéfinie une deuxième fois.
En fait, je me posais plusieurs questions :
1) Est ce qu'il est possible de faire ce que je viens de faire, en bidouillant le code ?
2) Est ce qu'il est possible de faire autrement, c'est à dire, changer le point d'entrée du programme dans mon deuxième programme pour pouvoir inclure Programme1.cpp ? Mais pour ça je ne sais pas comment faire au niveau de l'éditeur de liens, mais il parait que ça fonctionne alors si vous savez :)
Voilà, j'espère que vous pourrez m'aider, je vous remercie par avance
Bonne journée à tous :)
A voir également:
Le programme ne contient pas de méthode 'main' statique adaptée à un point d'entrée
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 12 juil. 2009 à 17:16
On n'inclut pas des fichiers .cpp. Le code doit être présent une fois seulement dans tout le projet. Pour utiliser une fonction implémentée dans un autre fichier il faut simplement ajouter sa déclaration :
// file1.cpp
void Stub(void)
{
return;
}
// file2.cpp
void Stub(void);
int main(void)
{
Stub();
return;
}
Pour éviter de recopier 50 fois les déclarations, avec risque d'erreurs, on place en général les déclarations dans un header (fichier .h) que l'on inclut partout où on en a besoin.
Quant à changer le point d'entrée du programme c'est possible
(sous VS, #pragma comment(linker,"/entry:") )
mais dans ton cas ce n'est pas ce dont tu as besoin, il te suffit de renommer une des deux fonctions main en autre chose et l'appeler depuis l'autre, de par sa déclaration comme vu.