Changer point d'entrée d'un programme [Résolu]

Signaler
Messages postés
7
Date d'inscription
dimanche 12 juillet 2009
Statut
Membre
Dernière intervention
12 août 2009
-
Messages postés
7
Date d'inscription
dimanche 12 juillet 2009
Statut
Membre
Dernière intervention
12 août 2009
-
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 :)

2 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
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.
Messages postés
7
Date d'inscription
dimanche 12 juillet 2009
Statut
Membre
Dernière intervention
12 août 2009

Ok merci bien, c'est nikel :)