Arguments de la ligne de commande de l'API Win32
Je suis en train d'écrire Win32 console application, qui peut être commencé avec des arguments optionnels comme ceci:
app.exe /argName1:"argValue" /argName2:"argValue"
Dois-je analyser manuellement (pour être en mesure de déterminer, quels sont les arguments qui y sont présentes) à partir de argc/argv variables, ou ne Win32 API contiennent certains arguments de l'analyseur?
source d'informationauteur tomas
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de Win32 soutien pour analyse arguments de ligne de commande.
Voir les articles sur le site MSDN:
L'Analyse C++ Arguments De Ligne De Commande
Argument Définitions
Personnalisation De C++ Traitement De Ligne De Commande
également examiner des questions similaires à:
Ce paramètre, parser les bibliothèques sont là pour le C++?
L'analyse des paramètres principaux()
Option Analyseurs pour le C/C++?
Ce qui est un moyen efficace pour analyser les paramètres de ligne de commande en C++?
...
Le seul soutien qu'Win32 fournit pour les arguments de ligne de commande sont les fonctions
GetCommandLine
etCommandLineToArgvW
. C'est exactement le même que leargv
paramètre que vous avez pour une application console.Vous aurez à faire l'analyse de vous-même. Regex serait une bonne option pour cela.
Vous pourriez s'amuser avec les différentes bibliothèques et d'autres choses... Mais parfois, tout ce que vous avez besoin est quelque chose de simple, pratique et rapide:
Vous voyez l'idée...
C'est en supposant que normale Win32 console application que vous avez implicite (qui a une tradition
main
fonction). Pour Win32 apps vous venir àWinMain
au lieu de cela, une autre personne a déjà commenté.Juste pour le record, si vous utilisez De MinGW GCCplutôt que de Microsoft MSVC, vous obtenez GNU getopt (qui comprend également getopt_long et getopt_long_only variantes), inclus dans le standard de la bibliothèque d'exécution.
Vous pouvez analyser les arguments en utilisant
GetCommandLine, PathRemoveArgs, PathGetArgs
dans une bouclehttps://msdn.microsoft.com/en-us/library/windows/desktop/bb773742(v=vs. 85).aspx
J'ai été le développement et l'utilisation libparamset qui est écrit dans la plaine C. Il est vraiment puissant et fonctionne bien sur Windows.
Il fournit:
Je ne crois pas qu'il y est une API Win32 disponibles. Vous pouvez rechercher un Windows de mise en œuvre de getopt ou d'une autre bibliothèque.
Pas sûr au sujet de l'existence d'une telle fonction api win32(s), mais Coup de pouce.Program_Options de la bibliothèque peut vous aider.
Si vos besoins sont simples, vous voudrez peut-être jeter un oeil à Argh!.
Il est simple d'en-tête et super facile à utiliser:
Par être non intrusif, il ne prend pas plus de vous
main()
fonction.Du Readme: