赞
踩
win32可执行程序(.exe)分为两种类型,基于控制台(Consol-based)的和基于窗口(Windows-based)的。基于控制台程序它的入口函数是传统的main,基于窗口的则是WinMain。这两个入口函数一大区别是对于命令行参数的处理。
窗口应用程序的运行需要命令行参数的支持,即WinMain函数第三个参数,举个例子:当我们打开一个txt文件时,我们可以这样 notepad.exe c:\abc.txt ,这时c:\abc.txt就是一个命令行参数,命令行参数的作用就好像是给应用程序notepad.exe提供一个提示:要打开哪个文件,在这个例子中就是文件的路径。
GetCommandLineW函数的作用是获取程序的命令行参数然后以参数的形式传递给WinMain函数
利用GetCommandLine()函数获得命令行参数,
利用CommandLineToArgvW()函数解析命令行参数。
代码举例:
LPWSTR *szArglist = NULL;
int nArgs = 0;
szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
if( NULL != szArglist)
{
//szArglist就是保存参数的数组
//nArgs是数组中参数的个数
//数组的第一个元素表示进程的path,也就是szArglist[0],其他的元素依次是输入参数。
}
//取得参数后,释放CommandLineToArgvW申请的空间
LocalFree(szArglist);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。