小T的博客

/首页 / 个人首页 /管理博客 / 个人相册 /我的文章 / 登陆

/首页 /个人首页 /控制面板 /登陆 /帮助
2006-12-18
  • 在C++Builder中取得命令行参数
    2006-12-18

       用过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…中修改命令行参数,然后运行程序……怎么样?够简单的吧!

    xiaot 发表于 >2006-12-18 13:40:14 [评论 0] [浏览 0]
文章评论

以下网友留言只代表其个人观点,不代表求学网的观点或立场

    暂无信息

小T的博客

公告
God helps those who help themselves.
文章
  • 全部 [97]
  • 默认分类 [0]
  • 你知道么? [18]
  • 互联网 [22]
  • 软件教程 [2]
  • 电脑知识 [13]
  • 编程 [16]
  • 电脑族须知 [5]
  • 调侃IT [6]
  • javascript [15]
相册
  • 全部 [138]
  • 全球最顶级的跑车 [40]
  • 全球最暴笑的警示标志 [10]
  • 想入非非的手机 [6]
  • 罐头盒的艺术 [11]
  • 搞笑IT贴图 [20]
  • PS想像力的爆发 [35]
  • 史上超级搞笑的发明 [16]
Copyright 2006 Tostudy.com.cn@All rights reserved. 学海无涯(北京)信息科技有限公司 版权所有