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