[MFC] Récupérer les arguments de la ligne de commande (argc, argv,...)

Récupérer les arguments de la ligne de commande (argc, argv,...) [MFC] - C++ - Programmation

Marsh Posté le 17-07-2002 à 10:18:27    

Est-on obligé de passer par la fonction GetCommandLine(); et de découper la chaîne renvoyée pour récupérer les arguments passés à l'éxécutable ?
merci

Reply

Marsh Posté le 17-07-2002 à 10:18:27   

Reply

Marsh Posté le 17-07-2002 à 10:22:17    

non, pas du tout..
 
les prog en ligne de commande ecrit en C/C++
ou en java (et aussi tech dotNet)
on un procedure principal qui s'appel "main" et qui accepte en argument un chaine de caractère c'es dans c'est chaine
que tu obtiens les arguments de la ligne de commande.
 
@+

Reply

Marsh Posté le 17-07-2002 à 10:23:15    

excuse moi pour toutes les fautes d'hortographes..
 
lol

Reply

Marsh Posté le 17-07-2002 à 10:29:10    

Tout à fait d'accord mais le problème c'est qu'avec les MFC, il n'y a pas de main à proprement parlé. Il y a un InitInstance et c'est tout. Après pour récupérer les arguments, il existe une variable m_lpCmdLine, mais cette chaine contient tous les arguments, et donc faut découper... Mais bon si c'est la seule solution, c'est pas la mort mais c quand même dommage qu'il n'y est pas le même système qu'avec main()....

Reply

Marsh Posté le 17-07-2002 à 10:42:53    

GetModuleFileName pour l'équivalent du premier
sinon à ma connaissance y a pas :/
y a ParamStr(index) dans C++Builder mais vu que ça vient de Delphi c'est sûrement un truc propre à Borland... ça appelle GetModuleFileName si on demande le premier élement, et GetParamStr pour les suivants. Quand on va voir le code de GetParamStr on voit qu'ils font le découpage "à la main" de GetCommandLine, donc y a des chances que ce soit pas prévu d'avoir accès aux éléments séparés dans l'API Windows :/


Message édité par antp le 17-07-2002 à 10:43:11
Reply

Marsh Posté le 17-07-2002 à 11:19:25    

ok merci  :jap:

Reply

Marsh Posté le 19-07-2002 à 13:33:52    

antsite a écrit a écrit :

Est-on obligé de passer par la fonction GetCommandLine(); et de découper la chaîne renvoyée pour récupérer les arguments passés à l'éxécutable ?
merci




 
Tu utilises GetCommandLine pour recuperer la ligne de commande
et CommandLineToArgvW pour diviser les arguments en un tableau de chaine Unicode.

Reply

Marsh Posté le 19-07-2002 à 15:26:35    

Oui j'avais vu cette fonction mais vu que je suis sous 98, eh bien c foutu  :(

Reply

Marsh Posté le 19-07-2002 à 15:42:32    

pas forcément...
tu peux utiliser CommandLineToArgvW pour obtenir ton tableau de chaines Unicode, puis ensuite utiliser WideChartoMultiBytes (mo MultiBytesToWideChar je sais plus) pour transformer les chaines Unicode en ASCII.
mais bon, tout compte fait, je me demande si t'aurais pas plus vite fait de découper m_lpCmdLine :d


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-07-2002 à 16:43:20    

Ben je sais pas car :
http://msdn.microsoft.com/library/ [...] toargv.asp
 
-> Windows XP pour cette fonction !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed