在C++ Builder中取得呼吁行参数
用过C语言编程的人都知道,在DOS下的编程可以通过main函数的参数取得呼吁行参数的个数以及每个参数的字符串,譬喻
int main(int argv ,char *argv[])
{
…
}
则呼吁行参数是argc个,这些参数别离存储在argv[0]~argv[argc-1]中,个中argv[0]是可执行文件的名字(含路径),那么Windows措施是怎么取得呼吁行参数的呢?用C语言写过windows措施的人都知道,在windows措施的主函数WinMain()中,有一个参数lpszCmd,这个参数就是呼吁行参数。但我们在windows编程时一般都没在WinMain()函数事情,再加上lpszCmd是整个呼吁行,要取得每个参数利用也不利便,有没有更好的要领呢?
假如你是利用的C++Builder编程,那么我就恭喜你,在C++Builder顶用利用呼吁行参数长短常简朴。C++Builder界说了三个全局变量和函数CmdLine、ParamStr()、ParamCount(),有了这三个变量和函数,就可以很是利便地利用呼吁行参数了,首先我们来看一下这几个函数和变量的界说:
extern PACKAGE char *CmdLine;
extern PACKAGE AnsiString __fastcall ParamStr(int Index);
extern PACKAGE int __fastcall ParamCount(void);
CmdLine和WinMain()的参数lpszCmd是一样的,也就是整个呼吁行参数;ParamCount()用来取得呼吁行参数的个数,但不包罗可执行文件名,也就是相当于DOS下的argc-1,ParamSter()用来取得每一个呼吁行参数的值,ParamStr(0)就是可执行文件名,实际的参数就是ParamStr(1)~ParamStr(ParamCount())。下面就以一个例子来说明这三个函数变量的利用。
在窗体上安排一个Label,用来显示总的呼吁行参数;再插手一个ListBox,用来显示每个参数,然后在窗体的onCreate事件中插手以下代码:
Label1->Caption=CmdLine;
for(int i=0;i<=ParamCount();i++)
ListBox1->Items->Add(ParamStr(i));
然后在菜单Run->Parameters…中修改呼吁行参数,然后运行措施……怎么样?够简朴的吧!