MFC中获取命令行参数的几种方法
2015-04-21 22:22
211 查看
不妨假设应用程序名为CmdTest,在命令行输入CmdTest Hello World
方法一:
[cpp] view
plaincopy
CString str = ::GetCommandLine();
ASSERT(0 == str.Compare("CmdTest Hello World"));
方法二:
[cpp] view
plaincopy
ASSERT(3 == __argc);
ASSERT(0 == strcmp(__argv[0],"CmdTest"));
ASSERT(0 == strcmp(__argv[1],"Hello"));
ASSERT(0 == strcmp(__argv[2],"World"));
方法三:
[c-sharp] view
plaincopy
ASSERT(0 == strcmp("Hello World",AfxGetApp()->m_lpCmdLine));
方法四:
使用MFC中的CCommandLineInfo类。
首先,将下面的代码注释,主要是不要生成对话框。
[cpp] view
plaincopy
CCmdTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
创建CCommandLineInfo的派生类
[cpp] view
plaincopy
//MyCmdLineInfo.h
class CMyCmdLineInfo : public CCommandLineInfo
{
public:
CMyCmdLineInfo();
virtual ~CMyCmdLineInfo();
virtual void ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast);
CStringArray m_arCommd;
};
//MyCmdLineInfo.cpp
CMyCmdLineInfo::CMyCmdLineInfo()
{
m_arCommd.RemoveAll();
}
CMyCmdLineInfo::~CMyCmdLineInfo()
{
}
void CMyCmdLineInfo::ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast)
{
CString str = pszParam;
m_arCommd.Add(str);
}
在CCmdTestApp::InitInstance最后,return FALSE之前加上,注意要#include对应头文件
[cpp] view
plaincopy
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"));
方法一:
[cpp] view
plaincopy
CString str = ::GetCommandLine();
ASSERT(0 == str.Compare("CmdTest Hello World"));
方法二:
[cpp] view
plaincopy
ASSERT(3 == __argc);
ASSERT(0 == strcmp(__argv[0],"CmdTest"));
ASSERT(0 == strcmp(__argv[1],"Hello"));
ASSERT(0 == strcmp(__argv[2],"World"));
方法三:
[c-sharp] view
plaincopy
ASSERT(0 == strcmp("Hello World",AfxGetApp()->m_lpCmdLine));
方法四:
使用MFC中的CCommandLineInfo类。
首先,将下面的代码注释,主要是不要生成对话框。
[cpp] view
plaincopy
CCmdTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
创建CCommandLineInfo的派生类
[cpp] view
plaincopy
//MyCmdLineInfo.h
class CMyCmdLineInfo : public CCommandLineInfo
{
public:
CMyCmdLineInfo();
virtual ~CMyCmdLineInfo();
virtual void ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast);
CStringArray m_arCommd;
};
//MyCmdLineInfo.cpp
CMyCmdLineInfo::CMyCmdLineInfo()
{
m_arCommd.RemoveAll();
}
CMyCmdLineInfo::~CMyCmdLineInfo()
{
}
void CMyCmdLineInfo::ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast)
{
CString str = pszParam;
m_arCommd.Add(str);
}
在CCmdTestApp::InitInstance最后,return FALSE之前加上,注意要#include对应头文件
[cpp] view
plaincopy
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"));
相关文章推荐
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法(转)
- MFC中获取命令行参数的几种方法
- MFC中获取命令行参数的几种方法