新聞中心
MFC命令行參數(shù)獲取
int nNum= 0;
LPWSTR* lp=CommandLineToArgvW(GetCommandLineW(), &nNum);
ASSERT(0);
for (int i = 0;i { AfxMessageBox(lp[i]); } 1.VS,F(xiàn)5運行 1個參數(shù) 123 p[0], F:\svn\tey\aa\aa\..\aa\aa.exe p[1], 123 2.雙擊啟動 1個參數(shù) 123 p[0], F:\svn\tey\bin\aa\aa.exe p[1], 123 3.命令行啟動 這里傳幾個參數(shù),那邊就得到幾個參數(shù) aa.exe 123 p[0], aa.exe p[1], 123 c:\aa.exe 123 p[0], c:\aa.exe p[1], 123 4.批處理啟動 aa.bat aa.exe 123 p[0], aa.exe p[1], 123 5.ShellExecute 啟動 1個參數(shù) 123 p[0], F:\svn\tey\bin\aa\aa.exe p[1], 123 6.CreateProcess("aa.exe", "123") p[0], 123 總結:除了CreateProcess以外,其它的第一個參數(shù)都是可執(zhí)行文件全路徑 當用CreateProcess的方式創(chuàng)建exe的時候,沒有默認的第1個參數(shù),所以命令行參數(shù)都需要從第2個參數(shù)傳入 CreateProcess只認第1個參數(shù),以啟動指定的進程,也就是說CreateProcess("", "aa.exe -123"...) 是無法啟動進程的 CreateProcess("aa.exe", "-123"...) 對應的參數(shù)為: 1:-123 任何一種方式,默認的分隔符都為空格,所以如果你要傳路徑,路徑中不要有空格,如果你保證不了,可以在參數(shù)兩頭加引號,如: test322.exe "c:\aa bb\cc dd" CreateProcess("aa.exe", "c:\aa bb\cc dd"...) 得到的參數(shù)如下 1:c:\aa 2:bb\cc 3:dd CreateProcess("aa.exe", "“c:\aa bb\1” “c:\aa bb\2”"...) 得到的參數(shù)如下 1:c:\aa bb\1 2:c:\aa bb\2 當你在命令提示符下輸入"aa.exe -999"時,操作系統(tǒng)會有一個編碼轉換的過程,也就是,你不需要關心aa.exe是ANSI編碼還是UNICODE編碼,它會自動輪換成你需要的類型,這個在你編輯aa.exe的時候就決定了 另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:關于命令行參數(shù)-創(chuàng)新互聯(lián)
分享路徑:http://ef60e0e.cn/article/dhddch.html