Commandes dos avec c++

Signaler
Messages postés
41
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
13 décembre 2008
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
je suis entrain de développer un programme en visual c++ et j'ai besoin d'exécuter une commande dos "tracert" dans ce programme et de récupérer son résultat et je ne sais pas comment faire.
Veuillez s'il vous plait m'aider si vous avez une idée!!
Merci beaucoup!!!

15 réponses

Messages postés
15112
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 août 2021
98
Une solution possible: faire un fichier batch avec la commande "tracert" et la redirection de la sortie vers un fichier.
Dans ton programme, tu lance ton fichier batch avec ShellExecute() ou CreateProcess() et tu n'as qu'à lire le fichier résultat

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Solution :

FILE * fp;

system("tracert > tracert-resultat.txt");
fp = fopen("tracert.txt", "rt");

if(!fp) return -1; // erreur d'ouverture du fichier

fgets(....); // Ici tu lis ton fichier comme bon te semble

fclose(fp);

Shell
Messages postés
15112
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 août 2021
98
Oui, c'est sûr, c'est plus optimiser que ma solution...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Ca reviens au meme, ca évite juste d ese trimbaler un batch.
Le principe était la ;-)

Shell
Messages postés
41
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
13 décembre 2008

je vous remercie pour votre aide mais est ce que vous pouvez me donner une idée sur les bibliothèques nécessaires car il m'affiche l'erreur suivante:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol [mailto:_WinMain@16 _WinMain@16]
Debug/dos1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Apparement le compilateur ne trouve pas ta fonction WinMain, ou sont prototypes n'est pas correcte.

Shell
Messages postés
41
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
13 décembre 2008

est ce que vous pouvez me dire c quoi la solution alors?
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Mets ton code ici s'il n'est pas trop long.

Shell
Messages postés
41
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
13 décembre 2008

le problème c ke g essayé de tester la commande system avec une commande dos simple ping et c le même problème.c le même message d'erreur!!!
#include<stdlib.h>
#include
int system(const char *);
void main()


{
system("ping 172.16.87.101");
}
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
system() n'a rien à faire dans un prog Windows (NON console).
Regarde l'exemple donné à CreatePipe dans MSDN.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
BruNews> T'es sure qu'il est pas en mode console ?

Shell
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
unresolved "WinMain" c'est clair non ???

Il y a visiblement un gros souk dans tout cela.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
A tout les coups il a crée un projet typique pour les appli Win32 GUI, et il utilises du code prévu pour le mode console avec un main().
D'ou ce message d'erreur.

Shell
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
BruNews> J'avais raison regarde le code qu'il a mis plus haut.... void main() !

Shell
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
vi vi j'ai vu.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++