Comment lancer une application avec passage d'arguments en .net [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
8
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
19 juin 2007
-
Bonjour,

J'ai besoin d'aide pour passer des arguments au programme C que je lance à partir de mon programme .net. 

En C pour récupérer les arguments, on a les paramètres int argc et char* argv[].

Mon programme .NET lance le programme ecrit en C avec le code ci-dessous, je veux pouvoir passer une variable à ce programme.

Merci de m'aider ... 

**************************************************************************

'Declenchement du process qui permet de tuer proprement l'application GBA_Link

With kill_GBA_process.StartInfo.FileName = Kill_GBA_exe_file

.WindowStyle = ProcessWindowStyle.Normal
.UseShellExecute False.CreateNoWindow
False.RedirectStandardOutput False.WorkingDirectory Application.StartupPath

.Arguments = ""

End
Withkill_GBA_process.Start()

 ************************************************************************* 

5 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Ben regarde la propriété .Arguments, c'est dans cette propriété que tu doit mettre les arguments à passer au lancement du process

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
8
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
19 juin 2007

Merci de me répondre Casy.

J'ai regardé déjà, mais ça ne fonctionne pas, le programme se lance mais ne prend pas en compte mon argument.

Pour être davantage précis prenons l'exemple suivant :

Mon programme C affiche la chaine de caractere passer en argument :

*************************************************************
int

main(
int argc,
char * argv[]){

printf ("%s",*argv[0]);

return 0;

}
***********************************************************************
Jusque là je pense que il n'y a pas d'erreur

***********************************************************************

Mon programme .NET, lui passe la chaîne "Hello World" pour que mon programme C l'affiche:

'Declenchement du process qui permet de tuer proprement l'application GBA_Link

With kill_GBA_process.StartInfo.FileName = Kill_GBA_exe_file

.WindowStyle = ProcessWindowStyle.Normal
.UseShellExecute False.CreateNoWindow
False.RedirectStandardOutput False.WorkingDirectory Application.StartupPath

.Arguments = "Hello World"

End
Withkill_GBA_process.Start()

******************************************************************************

Ce code ne fonctionne pas, donc je pense qu'il y a quelquechose qui m'échappe mais quoi????

Désolé si la question vous parait bateau et

Merci pour votre aide !!  
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
tu dois certainement avoir un problème avec ton appli C car chez moi ton code marche en prenant Notepad comme appli et en lui passant un fichier an argument. notepad est bien lancé et le fichier ouvert.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Regarde si c'est pas plutot argv[1] qu'il faut afficher. argv[0] ne serait pas le nom de l'executable par hasard ??,

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
8
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
19 juin 2007

Merci Casy,

Tu avais raison, mon problème venait de l'appli C, mon erreur était d'afficher *argv[0] qui n'est pas un string.

Il fallait afficher argv[0].
De plus argv[0] est effectivement le nom de l'exécutable.
Donc pour afficher "hello world" il fallait prendre "argv[1]" et "argv[2]" car chaque string séparé par un espace est placé dans une case différente. 

J'avais pas fais attention, j'ai pas les yeux en face des trous aujourd'hui!! 

Merci, bon Week-end