WinMain et arguments [Résolu]

Signaler
Messages postés
94
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
22 janvier 2009
-
Messages postés
94
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
22 janvier 2009
-
Hello tout le monde !!

Je cherche comment récupérer les arcuments passés en ligne de commande à un programme graphique utilisant la fonction WinMain...
On récupère bien la ligne de commande dans la variable szCmdLine (cf le proto de WinMain), mais je ne vois pas comment l'utiliser...
Pour info, je développe sous Eclipse, avec MinGW, donc pas la peine de m'envoyer un truc VC++ !!

Merci d'avance...

Keep Cool & Be Wild
Divad

5 réponses

Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Parser une chaine pour extraire ce qu'on cherche n'est pas spécifique à un compilo.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
46
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
25 août 2006

Salut

Ben si tu veux utiliser les arguments tu peux utiliser __argc et __argv qui sont utilisées
par le préprocesseur je crois...

Exemple:



int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{

for (int i = 0; i < __argc; i++)

{

//Version console

printf ("%s\n", __argv[i]);

//Version GUI

MessageBox (HWND_DESKTOP, __argv[i], "Ligne de commande", MB_ICONINFORMATION);

}

return 0;

}
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
__argc et __argv n'existeront dans l'exécutable que si on les emploie, ça va encombrer et gonfler le code résultant inutilement.
La ligne de commande d'un prog Win est telle que passée chez CreateProcess et refilée direct au CRT qui l'empile pour WinMain (après alloc du bloc nécessaire à la contenir).
Ecrire le parsing d'une chaine avec 2 pointeurs n'est tout de même pas sorcier, le C fournit les fonctions nécessaires si tu ne veux pas tout écrire (strstr() par exemple).

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
94
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
22 janvier 2009
2
Excusez moi, j'aurai dû chercher plus à fond dans le forum...

Merci à tous !

Keep Cool & Be Wild
Divad