写win32程序会遇到这种尴尬:
程序需要传参进main,可是调试的时候改起来很麻烦,一种方法是调试时直接一进到就给argc、argv赋值,发布时屏蔽;第二种方法是vs带参数输入,不过修改很麻烦。
今天看到一个函数CommandLineParser,是opencv里面的,可以解析命令,也不用调试与发布切换了。
具体用法:
const char* keys =
{
"{@input |v1.avi | video name}"
};
cv::CommandLineParser parser(argc, argv, keys);
string input = parser.get<string>("@input");
input的值就是想要的v1.avi,keys内部字符串格式为“{ var name| var value | var info}”。
具体使用参考opencv文档,http://docs.opencv.org/3.0-beta/modules/core/doc/command_line_parser.html