说明:
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释放空间