Récupérer les arguments de la ligne de commande (argc, argv,...) [MFC] - C++ - Programmation
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.
@+
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()....
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
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.
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
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
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 !
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