IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lancer un .exe


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut Lancer un .exe
    Bonjour a tous

    Je suis debutant en programmation.
    J'essai de faire un petit programma dans lequel j'ai besoin de lancer un .exe, je n'y arrive.
    J'ai des erreurs lnk1561 , lnk 2001 que je n'arrive pas a corriger, et je ne suis pas sur de la fonction a utiliser pour lance le .exe, j'utilise shellexecute....

    si qqn pouvait m'ecrire le code qui va bien, avec les bibliotheque a inclure, je suis vraiment paumé ...

    Merci

    Steph

  2. #2
    Membre chevronné Avatar de aziz jim
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 455

  3. #3
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    , utilise la commande système :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("tout ce que tu tapes, c'est comme si tu le tapais en ligne de commande");
    Ce que tu donnes en argument a system, c'est comme si tu le tapais dans une console

  4. #4
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    j'ai essayé std::system

    il me met cette erreur:
    LINK : fatal error LNK1561: le point d'entrée doit être défini.....

  5. #5
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Ton code exacte.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    j'ai un fichier ou ya le prog principal et un fichier de sous prog. voici le fichier sousprog, c la procedure lancer qui pose probleme....




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include "sousprog.h"
    #include "string.h"
    #include <cstdlib> 
     
     
    //  changer
     
    void changer(int &a) {
     
    	if (a==1)
    		a=2;
    	else a=1
    }
     
     
     
    //  lancer
     
    void lancer(int a , int b) {
     
    	if (a==1 && b==1)
        std::system( "C:\...chemin.....\monfichier.exe" ); 
    }


    balises [code] rajoutées par r0d. Merci d'y penser dorénavant.

  7. #7
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut

    Il est où le main ?

  8. #8
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    il est dans le fichier principal. ya tout un bordel de raisonnement , plein de if et compagnie, et a la fin parfois i fait appel a la procedure lancer....

  9. #9
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    fais un code simple de test et dis nous si tu as toujours un problème

  10. #10
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    oui j'ai mis tout mon raisonnement en commentaires.
    le main se reduit a la procedure lancer

    et ca fait l'erreur lnk1561, que je ne parviens pas a resoudre.....

  11. #11
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Essaye ça pour voir si vient de system :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include <iostream>
    using namespace std;
    int main()
    {
     system("cd");
    }

  12. #12
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    je viens d'essayer, ca fait la meme erreur:

    LINK : fatal error LNK1561: le point d'entrée doit être défini

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    1. C'est bien une application console ?
    2. Si oui, je flaire un problème pire... Il te faudra alors aller dans les propriétés du projet, trouver le nom français de la section "Linker", puis trouver l'option point d'entrée, et y mettre:
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    hm hm

    au risque de passer pour un .....déchet....... euh c quoi une application console....?

  15. #15
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Sous Windows, tu as deux types d'applications Win32 : Console et fenêtrée.

    Une application console possède une fonction main(), et possède une console dès sa création, avec des flux standard (stdin, stdout, stderr) connectés à celle-ci.
    Une application fenêtrée possède une fonction WinMain() au lieu de main(), ne possède pas de console, et les flux standard, ben... nada.

    Sous un Visual Studio récent, tu devrais pouvoir voir ceci dans le paramètre /SUBSYSTEM du linker.

    PS: Tiens, une précaution aussi: Vérifie que c'est bien un projet C++ natif, c'est-à-dire que le paramètre /clr n'est pas mis (Project Properties -> Configuration Properties -> General -> Common Language Runtime support).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    concernant le fichier natif, c bon il n 'y a pas le /clr.

    sinon g ecrit un programme avec un main car je connais que ca (c ce que g appris a l'ecoile en fait.....)
    y a t il un endroit ou il faut preciser "console" ou"fenetree"?

  17. #17
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    à la création du projet, ou dans l'option que je t'ai dite.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    en effet ce n'etait pas coché. j'ai mis subsystem console


    maintenant j'ai l'erreur lnk2001:

    LINK : error LNK2001: symbole externe non résolu _mainCRTStartup

    il me semble que tu en avait parlé deja tout a l'heure, je vais remonter la discussion et faire ce que tu preconisais, je vous tien au courant.....

  19. #19
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    je galere la par contre... dans l'editeur de liens, onglet "entrée", y a plein de rubriques, j'imagine que c'est dans l'une d'elle qu''il faut mettre mainCRTStartup.

    voila les rubriques:

    dependances supplementaires
    toutesd bibliotheques par defaut ignorees
    bibliotheque specifique ignoree
    fichier de definition de module
    ajout du module a l'assembly
    incorporation du fichier de ressources
    references des symboles forcees
    chargement differe des dll
    ressource de liaison a l'assembly



  20. #20
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    toutesd bibliotheques par defaut ignorees
    Euh... Serait-elle activée, par hasard ?
    Normalement, _mainCRTStartup est TOUJOURS disponible, puisqu'elle est contenue dans la bibliothèque run-time...

    D'un autre côté, tu devrais aussi avoir une erreur sur la fonction system(), puisque tu l'utilises, et qu'elle est dans la CRT aussi...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [FreePascal] Lancer un exe
    Par Ultraboss dans le forum Free Pascal
    Réponses: 4
    Dernier message: 02/11/2005, 19h03
  2. Réponses: 7
    Dernier message: 10/10/2005, 18h54
  3. [VS .NET] Comment lancer un .exe
    Par lastcheper dans le forum MFC
    Réponses: 2
    Dernier message: 31/08/2005, 15h38
  4. [Flash MX2004] Lancer un *.exe avec fscommand
    Par pioup dans le forum Flash
    Réponses: 7
    Dernier message: 30/07/2004, 16h28
  5. [Debutant(e)]Lancer un exe en ligne de commande
    Par MASSAKA dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 18/05/2004, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo