J'essaie d'exécuter un exécutable à partir d'un programme C++. J'ai regardé et trouvé 2 options:
système ("C: \ filepath \ file.exe"); ShellExecute (GetDesktopWindow(), "ouvrir", "C: \ fichier_chemin \ fichier.exe", NULL, NULL, SW_SHOWNORMAL)
et
Tout est beau, sauf que ça ne marche pas.
Pour la première option, j'ai dû inclure, en dehors de windows.h, aussi cstdlib, sinon mon code ne s'est pas construit.
Quand je lance le programme, je reçois l'erreur: l'option
« file.exe » est pas reconnu comme une commande interne ou externe
J'ai mis le Common Language Runtime Support (/ clr de) pour mon projet (et je a également dû définir l'option DLL de débogage multithread (/ MDd) pour la bibliothèque d'exécution, sinon, il ne serait pas construire).
La deuxième option ne sera pas construite même si les deux bibliothèques sont incluses. J'obtiens l'erreur:
erreur C3861: « ShellExecute »: identificateur non trouvé
J'utilise VS2010 sur Windows7 - et je voudrais que cela fonctionne sur multi-plateformes ...
C++ Exécution d'un processus externe
Est-ce que je demande trop?
Merci.
Si vous voulez que ce soit multiplateforme, vous ne pouvez pas utiliser le 'ShellExecute' spécifique à Windows. Votre commande 'system' est correcte; on dirait que vous lui avez donné un chemin incorrect. – Borealid
Essayez d'échapper les barres obliques inverses dans l'argument de chaîne à 'system()': 'system (" C: \\ filepath \\ file.exe ");'. Les chances sont que votre premier extrait de code fonctionnera comme prévu alors. –
J'ai échappé au \\, et mon chemin est correct – Thalia