tom*_*mas 15 c windows winapi command-line command-line-arguments
我正在编写Win32控制台应用程序,它可以使用这样的可选参数启动:
app.exe /argName1:"argValue" /argName2:"argValue"
Run Code Online (Sandbox Code Playgroud)
我是否必须手动解析它(以便能够确定哪些参数存在)来自argc/argv变量,或者Win32 API是否包含一些参数解析器?
Lih*_*ihO 13
解析命令行参数没有Win32支持.
请参阅MSDN上的相关文章:
解析C++命令行参数
参数定义
自定义C++命令行处理
还要看一下类似的问题:
C++有哪些参数解析器库?
将参数解析为main()
C/C++的选项解析器?
在C++中解析命令行参数的有效方法是什么?
...
Win32为命令行参数提供的唯一支持是函数GetCommandLine和CommandLineToArgvW.这与argv控制台应用程序的参数完全相同.
您将不得不自己进行解析.正则表达式将是一个很好的选择.
你可能会弄乱各种库和东西……但有时你所需要的只是一些简单、实用和快速的东西:
int i;
char *key, *value;
for( i = 1; i <= argc; i++ ) {
if( *argv[i] == '/' ) {
key = argv[i] + 1;
value = strchr(key, ':');
if( value != NULL ) *value++ = 0;
process_option( key, value );
} else {
process_value( argv[i] );
}
}
Run Code Online (Sandbox Code Playgroud)
你明白了...
这是假设您暗示的普通 Win32 控制台应用程序(具有传统main功能)。对于 Win32 应用程序,您可以进入WinMain,正如另一个人已经评论过的那样。