關(guān)于Windows下程序執(zhí)行的說(shuō)明
估計(jì)有很多人首次都是通過(guò)Windows(微軟的操作系統(tǒng))來(lái)使用計(jì)算機(jī)的,Windows的設(shè)計(jì)導(dǎo)致很多人認(rèn)為所有程序只要雙擊一下就可以被正確執(zhí)行了,所以一大堆初學(xué)程序設(shè)計(jì)的童鞋就會(huì)遇到些疑問(wèn):
為什么雙擊之后,程序沒(méi)有正確執(zhí)行?
程序怎么黑一下就沒(méi)有了?
程序怎么跟我說(shuō)要輸入?yún)?shù)?
此文用于說(shuō)明如何在windows操作系統(tǒng)上正確地執(zhí)行程序,你也許不知道我再說(shuō)什么,windows程序執(zhí)行有啥可說(shuō)的呢?雙擊不就行了么?唉,都是被微軟的傻瓜式開(kāi)發(fā)弄得我們退化了呀。
說(shuō)清楚這些問(wèn)題有很多辦法。我們從Windows執(zhí)行程序的方式說(shuō)起吧。
Windows上程序的執(zhí)行方式
? 據(jù)我所知(為了不把話說(shuō)絕),Windows上執(zhí)行程序主要有兩種方式:一種就是雙擊;一種是通過(guò)命令提示符(cmd)來(lái)執(zhí)行。從操作上來(lái)講,前者需要鼠標(biāo),后者可以不需要鼠標(biāo)。至于雙擊這種方式,估計(jì)才接觸windows的人都會(huì)使用,所以就不說(shuō)了。后一種方式怎么用?很簡(jiǎn)單,首先啟動(dòng)cmd,啟動(dòng)的方法可以有幾種,我喜歡:Windows+R組合鍵,在輸入框中輸入cmd,敲回車,這樣不用鼠標(biāo)。如下圖:
啟動(dòng)cmd之后,比如我想啟動(dòng)記事本編輯一個(gè)文件名為demo.txt的文件,可以在cmd中輸入:notepad demo.txt 然后敲回車。
上面輸入的notepad就是記事本的可執(zhí)行程序的名字,它存在于Windows系統(tǒng)的PATH目錄(系統(tǒng)搜索可執(zhí)行程序的目錄)下,demo.txt是傳給notepad的一個(gè)參數(shù)。
我們自己的程序是如何知道程序的執(zhí)行參數(shù)的
知道怎么用命令行,那我的程序怎么知道接受的參數(shù)是什么呢?C/C++的main函數(shù)的參數(shù)就是解決這個(gè)問(wèn)題的。
看下main函數(shù)的標(biāo)準(zhǔn)定義:
int?main(int?argc,?char**?argv)
{
??return?0;
}
其中第一個(gè)參數(shù)argc表示的是我在啟動(dòng)程序時(shí)傳給操作系統(tǒng)的參數(shù)個(gè)數(shù),例如notepad demo.txt,argc的值就是2。
第二個(gè)參數(shù)argv存的是參數(shù)的值。例如notepad demo.txt 的argv是 {{"notepad"},{"demo.txt"}}。





