windows WTL使用命令行参数

两中方法:

第一种:

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

第二种:

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

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

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

------------ ----------------https://www.gnsoft.ltd------------------- ------------
原文地址:https://www.cnblogs.com/guozht/p/7680893.html