上篇
上篇地址:【第五课】wordsum 添加Log输出
上次回顾
上次我们说到怎么样添加log,这一次我们讲一下,怎么样检测输入的参数。
判断输入参数大于0
首先我们要排除程序在没有参数
的情况下运行,也就是,main函数
的第一个参数值为1
。
// if NULL argc
if (argc <= 1)
{
g_Log.WriteLine(Log::LOG_ERROR,WORDSUM_MSG_ERR_003);
return WORDSUM_RESULT_ERROR;
}
添加资源WORDSUM_MSG_ERR_003
的内容为指令的语法有错误。
判断输入参数 /?
判断是否输入/?
,如果输入/?
就显示帮助信息。
// 1. first find HELP command.
for (int i=1; i< argc; i++)
{
CString csArgv = CString(argv[i]).MakeUpper();
if (csArgv.Find(COMMAND_HELP) == 0) // /?
{
cmdLineInfo.OptionHELP = TRUE;
_tprintf(COMMAND_HELP_TEXT);
return WORDSUM_RESULT_SUCCESS;
}
}// end of for
在wordsum.h
头文件中添加对应的变量
const CString strTextCrlf = TEXT_CRLF;
const CString COMMAND_HELP = _T("/?");
const CString COMMAND_HELP_TEXT =
_T("WordSum .exe /L:英语单词列表文件名") + strTextCrlf +
_T(" /I:统计的文件或文件夹\r\n") + strTextCrlf +
_T(" [/LOG:日志文件]") + strTextCrlf +
_T(" [/?]") + strTextCrlf +
_T("选项详细") + strTextCrlf +
_T("/L:英语单词列表文件名 指定英语单词输出文件的文件名全路经。") + strTextCrlf +
_T("/I:统计的文件(文件夹) 指定统计的文件或文件夹的全路径。") + strTextCrlf +
_T("/LOG:日志文件 指定日志文件的全路经。") + strTextCrlf +
_T(" 缺省,标准错误日志输出,输出到屏幕") + strTextCrlf +
_T("/? 显示帮助信息。") + strTextCrlf
;
调试运行
为了以后调试的方便,我这里添加一个直接运行CMD到目录功能。
选择工具
-外部工具
按照下面方法配置
点击确定
,可以看到在外部工具
有刚才添加的命令行工具
运行截图
点击运行它,在里面输入wordsum.exe /?
,试试我们的成果。