windows WTL使用命令行参数

时间:2022-10-26 14:31:57

两中方法:

第一种:

 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的个数为真实的参数个数 ,并不包括 .\test.exe 本身。argv也一样,argv[0]为第一个参数,并不是.\test.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 使用方式为 .\test.exe -KEY:VALUE

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

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