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

MFC Discussion :

[VC++ 2005 Express] PB pour éxécuter un programme externe


Sujet :

MFC

  1. #1
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut [VC++ 2005 Express] PB pour éxécuter un programme externe
    Bonjour

    Après plusieurs recherce dans la FAQ, ce forum et sur le net, je n'ai toujours pas réussi à résoudre mon problème.

    Voilà donc j'ai Visual C++ 2005 Express, le projet est du type Window Form Application et j'aimerais éxécuter un programme (ou des fichiers txt, .url ...) externe à celui que je programme. Mais après les différentes recherche un peu partout, je n'ai pas trouvé la fonction qui me permette de le faire.

    Je tombe toujours sur des erreurs du style fonction inconnu ...

    Merci de bien vouloir m'aider

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    utilise ShellExecute[Ex], voir la faq http://c.developpez.com/faq/vc/?page...unRegistredApp

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Au passage, Window Form Application c'est un programme .Net, pas C++ natif.

  4. #4
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Au passage, Window Form Application c'est un programme .Net, pas C++ natif.
    Je ne savais pas. Dans ce cas somment faire des fenêtre en C++ natif ?

    Pour mon problème je doit être vraiment nul car ça marche toujours pas.

    Voici mon code (Form1.h) :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    #pragma once
     
     
    namespace WriteFile {
     
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
     
    	/// <summary>
    	/// Summary for Form1
    	///
    	/// WARNING: If you change the name of this class, you will need to change the
    	///          'Resource File Name' property for the managed resource compiler tool
    	///          associated with all .resx files this class depends on.  Otherwise,
    	///          the designers will not be able to interact properly with localized
    	///          resources associated with this form.
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Add the constructor code here
    			//
    		}
     
    	protected:
    		/// <summary>
    		/// Clean up any resources being used.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^  button1;
    	protected: 
     
    	private:
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
     
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->button1 = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(73, 47);
    			this->button1->Name = L"button1";
    			this->button1->Size = System::Drawing::Size(86, 32);
    			this->button1->TabIndex = 0;
    			this->button1->Text = L"button1";
    			this->button1->UseVisualStyleBackColor = true;
    			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(292, 266);
    			this->Controls->Add(this->button1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->ResumeLayout(false);
     
    		}
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
    			 {
    				 ShellExecute(handle, NULL, "c:\\", NULL, NULL, SW_SHOWNORMAL);
    			 }
    	};
    }
    Et voici le log obtenu après l'echec de la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    c:\documents and settings\dori@n\mes documents\visual studio 2005\projects\writefile\writefile\Form1.h(88) : error C2065: 'handle' : undeclared identifier
    c:\documents and settings\dori@n\mes documents\visual studio 2005\projects\writefile\writefile\Form1.h(88) : error C2065: 'NULL' : undeclared identifier
    c:\documents and settings\dori@n\mes documents\visual studio 2005\projects\writefile\writefile\Form1.h(88) : error C2065: 'SW_SHOWNORMAL' : undeclared identifier
    c:\documents and settings\dori@n\mes documents\visual studio 2005\projects\writefile\writefile\Form1.h(88) : error C3861: 'ShellExecute': identifier not found
    La ligne 88 correspondant au ShellExecute().

    J'ai du louper quelque chose mais quoi ???

    La fenêtre est juste une petite fenêtre avec un seul bouton (si sa peut aider, autant le préciser ^^).

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il doit te manquer un

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par dorian833
    Je ne savais pas. Dans ce cas somment faire des fenêtre en C++ natif ?
    Passer par Win32, soit de manière directe (voir les tutoriaux de bob et CGi : http://chgi.developpez.com/windows/), soit indirecte au moyen d'une lib C++ (http://c.developpez.com/faq/cpp/?pag...ENERALITE_gui)

  7. #7
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut
    Citation Envoyé par nico-pyright(c)
    il doit te manquer un
    Il ne trouve pas cette librairie que je rejoute le include

    Citation Envoyé par Aurelien.Regat-Barrel
    Passer par Win32, soit de manière directe (voir les tutoriaux de bob et CGi : http://chgi.developpez.com/windows/), soit indirecte au moyen d'une lib C++ (http://c.developpez.com/faq/cpp/?pag...ENERALITE_gui)


    Selon toi quel est le moyen le plus simple entre les API et les lib ?

    Si c'est les lib, peux-tu me dire celle qui serai la plus simple à mettre en oeuvre et a coder et gratuite (j'ai regardé tes liens mais pour les lib je sais pas laquelle choisir entre wxWidgets et VCF).

    Merci d'avance

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il te faut installer le platform sdk s'il n'y est pas

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    j'ai oublié de dire que windows.h c'était pour le début de tes erreurs
    Pour ShellExecute, il te faut
    Citation Envoyé par msdn
    Header shellapi.h
    Import library shell32.lib

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par dorian833
    Selon toi quel est le moyen le plus simple entre les API et les lib ?
    L'API Win32, c'est las base, un programme ne peut pas y échapper. Mais le programmeur oui, en utilisant des libs qui font de l'abstraction et simplifient le boulot.
    Donc les libs, c'est plus simple à apprendre, ça demande moins de code. Ca n'empêche pas de s'initier à Win32 pour comprendre ce qui se passe derrière, un peu comme on apprend l'assembleur pour bien comprendre ce que fait le compilateur.
    Après chaque lib est spécifique, y'en a des portables, des payantes, etc... faut choisir. C'est un peu expliqué là:
    http://c.developpez.com/faq/cpp/?pag..._commencer_cpp
    dans la 2° moitié

  11. #11
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut
    Bon du coup je télécharge le SDK car apparemment je n'ai que la doc

    D'abord merci à vous deux de m'aider, c'est simpa.

    Donc de ce que j'ai compris de la notions de portabilité (au niveau des interfaces ^^) je souhaite développer uniquement pour Windows (voir seulement XP) et si possible avec Visual C++ 2005 Express (pour une fois que Microsoft fait du gratuit autant s'en servir ^^) enfin le temps d'apprendre à programmer en C++. Donc je vais voir ce que sa donne avec le SDK (j'espère que son intégration à VC sera facile sinon je risque d'y passer un long moment ^^).

    Pour les lib, c'est un vrai casse-tête pour se faire une idée. Les points qui m'interesses sont : gratuit, avec une bonne doc ou un bon tuto, et avec un editeur (si possible). Ceux qui donne : wxWidgets et VCF. Je vais regarder de plus près VCF, qui m'a l'air pas mal, en attendant mon SDK

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Qt est une des lib les + simples et les mieux documentée, car commerciale. Mais elle est dipo gratuitement si tu développes en GPL.

  13. #13
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut
    J'ai pas réussi à trouver la version gratuite de Qt, mais je vais de nouveau chercher. Pour la licence ce n'est pas un problème, d'ici à ce que j'arrive à la maîtriser je pense que je pourrais le faire en API ^^.

    D'ailleurs en parlant d'API, j'ai installer le SDK qui était bien absent, mais je rencontre que des problèmes (j'ai ouvert un nouveau topic dans ce forum pour éviter le mélange ^^) et ce qui donne que je n'arrive toujours pas à éxécuter un prog externe

    EDIT : J'ai trouvé Qt Open Source reste plus qu'a tester

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Sauf que Qt GPL n'est pas prévu pour compiler avec VC++
    Mais y'a un patch qui s'occupe de ça. Regarde le post-it dédié à Qt4 dans le forum C++.
    Mais tu risques de galérer si tu débutes... j'ai commencé à pondre un tuto, je vais essayer de mettre le brouillon en ligne ce week end.

  15. #15
    Membre averti Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Points : 356
    Points
    356
    Par défaut
    Ok merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2012, 15h14
  2. Réponses: 1
    Dernier message: 03/01/2011, 16h19
  3. Problème pour éxécuter un programme externe
    Par anthonystaltaro dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 06/04/2009, 18h42
  4. Réponses: 8
    Dernier message: 29/08/2006, 15h57
  5. JDBC pour sql serveur 2005 express
    Par squal_13 dans le forum JDBC
    Réponses: 2
    Dernier message: 31/03/2006, 17h23

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