MFC程式中如何接受命令行引數

2021-06-19 06:06:49 字數 2033 閱讀 1855

方法一 

::getcommandline(); 

方法二 

for (int i=0;i<__argc;i++)    

for (int i = 1; i < __argc; i++)  

rcmdinfo.parseparam(pszparam, bflag, blast);      }  } 

這裡有個繼承ccommandlineinfo類的例子  

********************=  

目標 讓應用程式處理這裡所見的命令列標誌。 

>***.exe /c /d 策略 

乙個mfc應用程式可以用ccommandlineinfo類的成員函式parseparam()處理一些標準標 志。要新增我們自己的標誌,而仍然能夠支援另外一些標誌,我們將從ccommandlineinfo派 

生類,然後過載parseparam()。 步驟 

1.建立乙個新的ccommandlineinfo類 

1)用classwizard建立乙個派生於ccommandlineinfo的新類。在新類中,為應用程式要 處理的每個新的標誌新增乙個boolean或string成員變數。 classcwzdcommandlineinfo:publicccommandlineinfo ; 

3)如下實現parseparam(): 

voidcwzdcommandlineinfo::parseparam(consttchar*pszparam, boolbflag,boolblast)  

//m_strfilenamegetsthefirstnonflagname elseif(m_strfilename.isempty())  

ccommandlineinfo::parseparam(pszparam,bflag,blast); } 

注意到變數pszparam包括命令列中的下一項。如果pszparam的後面是乙個—(連字元)或 /(正斜槓)字元,則bflag變數為true,這些字元將被刪除;如果pszparam是一行中最後乙個 

變數,則blast為true。確信最後呼叫基類的parseparam(),否則標準標誌不被處理。 4)有關命令列訊息類的詳細清單,參見本節的「清單—命令列訊息類」。 2.把新的命令列訊息類插到應用程式類中 

1)在應用程式類中找到parsecommandline(),並用該新類替換ccommandlineinfo類。 //parsecommandlineforstandardshellcommands,dde,fileopen cwzdcommandlineinfocmdinfo; 

parsecommandline(cmdinfo); 

2)現在,命令列選項不能作為cmdinfo變數的成員變數。 if(cmdinfo.m_baflag)  

3)要使這些選項在整個應用程式中可得,則把cmdinfo嵌入應用程式中,並訪問它的成員 變數。 

■標準mfc標誌如下,真正處理這些標準命令列發生在processshellcommand(cmdinfo) 中,它正好在應用程式類中parsecommandline()之後。 nothing使應用程式試圖開啟乙個新文件 

filename使應用程式試圖以文件方式開啟檔名 

/pfilename使應用程式開啟並列印給定的檔名到預設的印表機 /ptfilename與上面相同,但輸入到指定的印表機 printerdriverport 

/dde使應用程式開始執行,並等待dde命令 /automationcom標誌 /embedding /unregister 

/unregserver 

■處理非標準標誌(如名字)會有點複雜,我們認為出現的第乙個非標準標誌是文件檔案名。 然而,一旦乙個檔名被發現,可以根據目的攫取任何非標準標誌,這就是說,除非 遇到/pt標誌,在這種情況下,下面三個非標準標誌變數用來初始化列印。為了簡化起 見,也可通過不把/pt標誌傳遞給基類中的parseparam()來禁用/pt標誌。 

■當然,如果不需繼續支援前面所示的標準mfc標誌,則可以更加自由地行動。只要不 用呼叫基類的parseparam(),可以使用任何標誌或非標準標誌選項。但是,不要因為能 用非標準標誌,而輕易放棄這些標準標誌提供的功能。 

MFC程式中如何接受命令行引數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!方法一 getcommandline 方法二 for int i 0 i argc for int i 1 i argc i rcmdinfo.parseparam pszparam,bflag,blast 這裡有個繼承ccommandlinein...

c 接受命令行 接受命令行挑戰

c 接受命令行 管道非常重要,甚至對於我們在命令列上執行出色任務的能力也至關重要。首先,必須認識到它們是unix早期由douglas mcilroy發明的。謝謝,道格!接下來,在這種情況下,管道是什麼?請注意,在這個簡單的命令列程式中使用了管道,該管道一次列出了每個登入使用者,無論他們有多少次登入都...

R語言接受命令行引數

比如希望對try.r檔案用如下命令列來執行 rscript try.r a 1 b astring 其中引數a是整數,引數b是字串,則 在try.r檔案中可以用 library getopt spec matrix c aparameter a 1,integer bparameter b 1,ch...