C++Builder中取得命令列參數

來源:互聯網
上載者:User
用過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…中修改命令列參數,然後運行程式……怎麼樣?夠簡單的吧! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.