MFC中獲取命令列引數的幾種方法

2021-07-01 23:24:24 字數 1699 閱讀 2554

不妨假設應用程式名為cmdtest,在命令列輸入cmdtest hello world

方法一:

[cpp]view plain

copy

cstring str = ::getcommandline();  

assert(0 == str.compare("cmdtest hello world"

));  

方法二:

[cpp]view plain

copy

assert(3 == __argc);  

assert(0 == strcmp(__argv[0],"cmdtest"

));  

assert(0 == strcmp(__argv[1],"hello"

));  

assert(0 == strcmp(__argv[2],"world"

));  

方法三:

[c-sharp]view plain

copy

assert(0 == strcmp(

"hello world"

方法四:

使用mfc中的ccommandlineinfo類。

首先,將下面的**注釋,主要是不要生成對話方塊。

[cpp]view plain

copy

ccmdtestdlg dlg;  

m_pmainwnd = &dlg;  

intnresponse = dlg.domodal();  

if(nresponse == idok)  

else

if(nresponse == idcancel)    

建立ccommandlineinfo的派生類

[cpp]view plain

copy

class

cmycmdlineinfo : 

public

ccommandlineinfo    

;  cmycmdlineinfo::cmycmdlineinfo()  

cmycmdlineinfo::~cmycmdlineinfo()  

void

cmycmdlineinfo::parseparam(

const

char

* pszparam, 

bool

bflag, 

bool

blast)    

[cpp]view plain

copy

cmycmdlineinfo  cmdinfo;  

cmdinfo.m_nshellcommand = ccommandlineinfo::filenothing;  

parsecommandline(cmdinfo);  

assert(2 == cmdinfo.m_arcommd.getsize());  

assert(0 == cmdinfo.m_arcommd[0].compare("hello"

));  

assert(0 == cmdinfo.m_arcommd[1].compare("world"

));  

獲取命令列引數

在win32控制台應用程式中,主函式為 int main intargc,char argv 其中argc為引數個數,我們可以如此呼叫 for i 0 i 在win32應用程式中呢?主函式為 int winapi winmain hinstancehinstance,hinstancehprevin...

python getopt 獲取命令列引數

python 中 getopt 模組,該模組是專門用來處理命令列引數的函式 getopt args,shortopts,longopts args一般是sys.argv 1 shortopts 短格式 longopts 長格式 命令列中輸入 python test.py i 127.0.0.1 p ...

php命令列獲取引數

php命令列獲取引數 原來程式使用list.php?n 1來實現乙個功能,現在需要讓其自動執行。在命令列下,cd www hx usr local bin php www hx list.php 但list.php要如何獲取引數呢?通過瀏覽文件,php 的命令列模式 知道了在使用命令行時,會產生 a...