GetCommandLine CmdLineToArgvW

说明:
LPTSTR GetCommandLine(VOID);

LPWSTR * CommandLineToArgvW(
                                                             LPCWSTR lpCmdLine,  // pointer to a command-line string
                                                             int *pNumArgs       // receives the argument count
                                                           );

使用GetCommandLine函数的返回值是一个程序的命令行,包括进程本身和所有的参数。他和winmain函数的lpCmdLine值是一样的,至于在main函数中,由于main函数可以带argc  ,argv参数。这两个参数,argc表示函数的参数,至少为1,argv是二级指针,里面存有所有的参数列表。当argc为1时,argv存储的是函数本身的路径。但main函数里的参数都是ANSI版本的,为了得到对应的Unicode版本的参数列表,所以有了CommandLineToArgvW函数,使用CommandLineToArgvW可以得到相同的效果。只不过是Unicode版本。
例如,可以这样调用:
  

int dwArgcs = 0;
    LPWSTR *pStr = CommandLineToArgvW(GetCommandLine(), &dwArgcs);

则,dwArgcs就相当于main函数中的argc,pStr就相当于main函数中的argv。
不过要注意了,

CommandLineToArgvW 返回的指针指向的地址空间是在函数内部所分配的,所以,最后的调用GlobalFree释放空间
原文地址:https://www.cnblogs.com/priarieNew/p/9754793.html