#include "StdAfx.h" #include "WHCommandLine.h" ////////////////////////////////////////////////////////////////////////////////// //构造函数 CWHCommandLine::CWHCommandLine() { } //析构函数 CWHCommandLine::~CWHCommandLine() { } //查询命令 bool CWHCommandLine::SearchCommandItem(LPCTSTR pszCommandLine, LPCTSTR pszCommand, TCHAR szParameter[], WORD wParameterLen) { //效验参数 ASSERT((pszCommandLine!=NULL)&&(pszCommand!=NULL)); if ((pszCommandLine==NULL)||(pszCommand==NULL)) return false; //参数处理 if (pszCommandLine[0]!=0) { //变量定义 UINT nCommandLen=lstrlen(pszCommand); LPCTSTR lpszBeginString=pszCommandLine; //提取参数 while (true) { //参数分析 LPCTSTR lpszEndString=_tcschr(lpszBeginString,TEXT(' ')); UINT nStringLength=(lpszEndString==NULL)?lstrlen(lpszBeginString):(UINT)(lpszEndString-lpszBeginString); //命令分析 if ((nStringLength>=nCommandLen)&&(memcmp(lpszBeginString,pszCommand,nCommandLen*sizeof(TCHAR))==0)) { //长度效验 ASSERT(wParameterLen>(nStringLength-nCommandLen)); if ((wParameterLen<=(nStringLength-nCommandLen))) return false; //提取参数 szParameter[nStringLength-nCommandLen]=0; CopyMemory(szParameter,lpszBeginString+nCommandLen,(nStringLength-nCommandLen)*sizeof(TCHAR)); return true; } //设置变量 if (lpszEndString==NULL) break; lpszBeginString=(lpszEndString+1); } } return false; } //////////////////////////////////////////////////////////////////////////////////