windows WTL使用命令行参数

时间:2023-03-08 22:57:06
windows WTL使用命令行参数

两中方法:

第一种:

 int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow){
int argc = ;
LPWSTR *argv= NULL;
//分割命令行参数
USES_CONVERSION;
LPCWSTR temp= A2W(lpstrCmdLine);
argv= CommandLineToArgvW(temp, &argc);
//到此处已经获取到了两个参数 argc argv,与控制台程序不同的是:argc的个数为真实的参数个数 ,并不包括 .\test.exe 本身。argv也一样,argv[0]为第一个参数,并不是.\test.exe
//此方法有一个缺陷,在命令参数有空格时,会解析失败,造成参数不完整。
}

第二种:

 #include <misc/cmdline.h>
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow){
CmdLine cmdline;
cmdline.Analyze(lpstrCmdLine); if (cmdline.HasParam("test")){
printf("%s",cmdline["test"]);
}
}
//这种方法在命令行参数输入时为 KEY:VALUE形式,在程序中可以用KEY获取VALUE,该类还有SetParam等方法,具体请参考源码。
使用方式为 .\test.exe -KEY:VALUE

至此两种方法介绍完毕,有建议的小伙伴可以给我留言评论。

如需转载,请标明出处:http://www.cnblogs.com/guozht/7680893.html