CmdLineParser /command1:argument1 /command2 /command3:longer argument /commannd4:1234
Introduction
Many applications can work with command line parameters. Usually it is a file name, for example you can call MS word with a document file name, and it will open it.
It is a useful feature. Also if you want to give more parameters it could be difficult deciding which parameter means what, which is necessary, and so on.
In this solution every parameter starts with a '/' character, the command name and the argument is separated by ':'.
For example:
CmdLineParser /file:file_name /print /option1:text with space /option2:1234
As it shows, you can use
- command with argument
- just command without argument like /PRINT
- argument can contain space, any character except '/'
- argument can be any type like text, number,
BOOL
, I mean any text that will be converted to your type!
Using the code
For testing, type some parameters in the project setting dialog (Alt-F7), dialog window, program arguments.
If you type the previous parameters, it reads the file name parameter, and gives an error message cause of unknown parameter:
if (!_strnicmp(command, "command", 10))
{
strcpy(m_file, arg);
}
else
if (!_strnicmp(command, "print", 10))
...
To convert your parameter use _strncmp
which is not case sensitive, and then make your code to handle this command. To found unknown commands, if else pair work fine. You cannot use switch for strings. After you get all parameters your code can work with them!
History
It's working! :)