MFC程序中关于命令行的处理
来源:互联网 发布:新网域名迁移到万网 编辑:程序博客网 时间:2024/09/21 09:24
最近给一个基于Dialog的程序添加了命令行模式,抽空看了下MFC中对命令行的处理。
一般有2种方法:
第一种是比较通用的,也比较简单:
在MFC程序的App类的InitInstance()中有如下代码:
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
//
if(!ProcessShellCommand(cmdInfo))
return FALSE;
...
ParseCommandLine(cmdInfo);
//
if(!ProcessShellCommand(cmdInfo))
return FALSE;
...
命令行填充CCommandLineInfo结构,然后在ProcessShellCommand 中处理。
默认的处理方式很简单,只有2种,文件跟打印:) 如果想对自己的特有的命令行处理的话,需要派生CCommandLineInfo类,并 重载其ParseParam函数对自己的开关和参数做出处理。
第二种麻烦一点点 在App类中有个成员变量m_lpCmdLine,其中放置命令行参数(不包括应用程序名本身)。我们要做的,就是从m_lpCmdLine中分离出各个参数进行处理。
而关键呢,就是在于分离参数,如何分离呢,一般我们的命令行参数之间都是通过空格来分割的,所以需要实现一个方法:
// 功能: 在字符串中截取由c分割的子串
// 参数: * instr = 字符串
// * outstr = 子串(输出)
// c = 定位符 (这里我们用空格分隔)
// no = 定位第no段子串
// 返回: 子串指针
char * CutString(LPCSTR instr, char * outstr, char c, int no)
// 参数: * instr = 字符串
// * outstr = 子串(输出)
// c = 定位符 (这里我们用空格分隔)
// no = 定位第no段子串
// 返回: 子串指针
char * CutString(LPCSTR instr, char * outstr, char c, int no)
另外因为最后不是以空格结尾的,所以还需要实现另外一个方法
//功能:在字符串中返回第no个c分割后末尾剩下的字符串
//参数定义以及返回都跟CutString一样
char * CutLastString(LPCSTR instr, char * outstr, char c, int no)
//参数定义以及返回都跟CutString一样
char * CutLastString(LPCSTR instr, char * outstr, char c, int no)
实现了这两个方法,就可以对命令行进行处理了。
- MFC程序中关于命令行的处理
- MFC程序处理命令行参数
- MFC中命令行参数处理办法
- MFC程序中如何接受命令行参数
- MFC程序中如何接受命令行参数
- MFC程序的命令行 编译与连接
- 关于程序中异常的处理
- MFC程序中消息以及函数的处理顺序简介!
- MFC程序中消息以及函数的处理顺序简介
- MFC程序中消息以及函数的处理顺序简介
- MFC程序中消息以及函数的处理顺序
- 《深入浅出MFC》中关于程序生死的笔记
- 今日写mfc程序中关于控件Paint的心得
- 【转】关于MFC程序中ScrollBar的用法简单介绍
- 关于MFC程序中隐藏任务栏图标的问题
- 在初始对话框中利用函数GetCommandLineW获取MFC程序的命令行参数
- MFC使用CCommandLineInfo处理命令行
- MFC中闪烁的处理
- wNv全国高校助学巡展重庆工学院 233枪挑Aqi xiaot刀斩Zgo
- 该效果在firefox和IE中测试通过.拖动然后就布局自动保存到数据库里了.
- 刚学JSP所以遇到了很多困难,想写点经验,可能你们觉得很SB,但希望大家别和我一样。。。。。。。。。
- 在Eclipse中使用debug调试程序
- ReBar控件相关类CReBar
- MFC程序中关于命令行的处理
- 用纯ASP代码实现图片上传并存入数据库中
- Visual Studio .NET的Doxygen 插件 - KingTools.
- .netWeb用户控件使用技巧。
- 数组实现的约瑟夫问题(Java)
- BES 的default-frsources不能启动。OracleConnectionPoolDataSource 错误
- 正则表达式
- 一个Form的生命周期
- Object tracking