WinMain et arguments

Résolu
divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 - 30 janv. 2006 à 12:18
divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 - 31 janv. 2006 à 14:09
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

cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
31 janv. 2006 à 07:06
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 janv. 2006 à 13:52
Parser une chaine pour extraire ce qu'on cherche n'est pas spécifique à un compilo.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
PLUiK Messages postés 46 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 25 août 2006
30 janv. 2006 à 13:58
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;

}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 janv. 2006 à 14:24
__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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 2
31 janv. 2006 à 14:09
Excusez moi, j'aurai dû chercher plus à fond dans le forum...

Merci à tous !

Keep Cool & Be Wild
Divad
0
Rejoignez-nous