MFC应用程序接收命令行参数的实现
来源:互联网 发布:移除数组中的指定元素 编辑:程序博客网 时间:2024/06/05 11:28
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://firefish.blog.51cto.com/298258/269461
有些时候我们需要我们的可执行程序在启动时获得用户指定的参数值,比如windows中常用的ping命令:
ping 192.168.0.1 –t
其中192.168.0.1 和-t都是该可执行程序ping的参数。MFC中提供了比较便捷的方式来实现参数值的传入,也就是本文要讲述的CCommandLineInfo类。
通过MFC向导生成的应用程序框架,在主App类中可以看到如下的代码:
// 分析标准外壳命令、DDE、打开文件操作的命令行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
这两行就是CCommandLineInfo类的标准用法,实现了新建、打开文件、打印机等的操作,具体用法参见:http://baike.baidu.com/view/2880057.htm?fr=ala0_1。如果需要定义自己的参数,则需要从CCommandLineInfo派生一个类,然后重载该类的ParseParam方法,实现参数的解析即可。
1.从CCommandLineInfo派生出类CMyCommandLineInfo:
class CMyCommandLineInfo : public CCommandLineInfo
{
public:
void ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast);
};
{
public:
void ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast);
};
2.在主程序App类中声明成员变量,用于保存命令行传入的参数:
CString m_strUsername;
CString m_strPassword;
CString m_strPassword;
3.重载ParseParam方法:
void CMyCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
{
static int num = 0;
CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast);
switch(num)
{
case 0:
theApp.m_strUsername = CString(lpszParam);
break;
case 1:
theApp.m_strPassword = CString(lpszParam);
break;
}
num++;
}
{
static int num = 0;
CCommandLineInfo::ParseParam(lpszParam, bFlag, bLast);
switch(num)
{
case 0:
theApp.m_strUsername = CString(lpszParam);
break;
case 1:
theApp.m_strPassword = CString(lpszParam);
break;
}
num++;
}
该方法通过递归的方式解析命令行中传入的所有参数,依次保存到相应的变量中。
4.修改主程序的调用,用派生的CCommandLineInfo类替换默认的:
CMyCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
ParseCommandLine(cmdInfo);
通过这简单的几步,就可以方便的取得命令行参数了。要注意的是命令行在传递参数的顺序要同程序里定义的一致。如本例中,第1个参数是用户名,第2个参数是密码,如果顺序错了,程序自然不能得到正确的参数数据。
本文出自 “江湖” 博客,请务必保留此出处http://firefish.blog.51cto.com/298258/269461
- MFC应用程序接收命令行参数的实现
- MFC应用程序接收命令行参数的实现
- MFC应用程序接收命令行参数的实现
- MFC 接收命令行 参数
- MFC Dialog程序如何接收命令行参数
- nsis接收命令行参数,实现动态安装
- C#的WINDOWS应用程序(FORM)怎样接收命令行调用和参数
- php接收来自命令行输入的参数
- C++ 接收命令行参数
- php接收命令行参数
- python接收命令行参数
- MFC获取命令行参数
- MFC 获取命令行参数
- MFC传入命令行参数
- mfc 获取命令行参数
- vc中接收命令行参数
- eclipse pydev 接收命令行参数
- PHP中 接收命令行参数
- 【新年新气象_新年CSDN第一篇】斯特林数简介及应用
- IP地址,子网掩码,地址池计算
- Java 求两个数最小公倍数
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
- MyEclipse8.5安装aptana3.x插件(MyEclipse8.6版本也适用)
- MFC应用程序接收命令行参数的实现
- 关于main函数的标准形式
- Delphi TStringList的用法
- JAVA 对象序列化
- 新年第一弹:吐蛇一下2013春晚
- 设置myeclipse的编码
- “金龙含珠辞旧岁,金蛇狂舞贺新年”。祝大家在Python年里,程序Bug越来越少,算法越来越efficient,模型越来越creative!
- 优酷视频真实地址解析
- wingide快捷键