|
- #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;
- }
-
- //////////////////////////////////////////////////////////////////////////////////
|