scbc.sat2 5 жил өмнө
parent
commit
a942e3d255

+ 25 - 1
SATService/SATService/CharEncoding.cpp

@@ -559,7 +559,31 @@ void CharEncoding::EnCode_UTF8URL(IN const CHAR* pText, OUT string& strResult)
 
 string CharEncoding::EnCode_UNICODEURL(IN const CHAR* pText)
 {
-	return "";
+	if ( pText == NULL )
+		return "";
+
+	std::string strReturn;
+	int nLength = strlen(pText)*4+1;
+	WCHAR *pwchBuf = new WCHAR[nLength];
+	memset(pwchBuf, 0, sizeof(WCHAR) * nLength);
+
+	MultiByteToWideChar(CP_ACP, 0, pText, -1, (LPWSTR)pwchBuf, nLength);
+
+	unsigned char h, l;
+	char tempbuff[6] = {0};	
+	for (size_t i = 0; i < wcslen(pwchBuf); i++)
+	{
+		// È¡¸ßµÍ×Ö½Ú;
+		h = *((unsigned char*)pwchBuf+i*2+1);
+		l = *((unsigned char*)pwchBuf+i*2);
+		sprintf_s(tempbuff, 8, "\\u%02x%02x", h, l);
+		strReturn += tempbuff;
+	}
+
+	delete[]pwchBuf;
+	pwchBuf = NULL;
+
+	return strReturn;
 }
 
 /************************************************************************/

+ 1 - 1
SATService/SATService/CharEncoding.h

@@ -80,7 +80,7 @@ public:
 	// 将字符串编码成为UTF-8编码格式的URL;
 	static string EnCode_UTF8URL(IN const CHAR* pText);
 	static void EnCode_UTF8URL(IN const CHAR* pText, OUT string& strResult);
-	// 将字符串编码成为UNICODE编码格式的URL;
+	// 将GBK字符串编码成为UNICODE编码格式的URL;(16进制的unicode)
 	static string EnCode_UNICODEURL(IN const CHAR* pText);	// 未完成该函数;
 
 	// 解码UTF-8编码格式的URL;

+ 20 - 17
SATService/SATService/SATExecutor.cpp

@@ -92,32 +92,31 @@ SATParameters::STCase* CSATExecutor::GetFreeCaseScript(std::vector<SATParameters
 SATParameters::STCase* CSATExecutor::ExecuteFreeCaseScript(SATParameters::STTask* pTask)
 {
 	SATParameters::STCase* pCase = GetFreeCaseScript(pTask->Job.vtCases);
-	if (pCase)
-	{		
-		if ( !pCase->_pExcutor )
-		{
-			CScriptExecutor *pExcutor = new CScriptExecutor();
-			if ( pExcutor )
-			{
+	if (pCase) {		
+		if ( !pCase->_pExcutor ) {
+			CScriptExecutor *pExcutor = new CScriptExecutor(); 
+			if ( pExcutor ) {
 				pCase->_pExcutor = pExcutor;
 				// 用例的日志文件路径;
 				pCase->_strCaseLog = pCase->_strFileDir + "\\" + pCase->_strFileName + ".txt";
-				if ( pExcutor->InitScript(pCase->_strScriptPath, pCase->_strCaseLog, "", SUBPROCESS) )
-				{
+				if ( pExcutor->InitScript(pCase->_strScriptPath, pCase->_strCaseLog, "", SUBPROCESS) ) {
 					pExcutor->StartScript();
 					// 标记用例执行中;
 					pCase->_nExecutionState = 1;
-					// 标记任务为执行中;
-					pTask->_nExecutionState = 1;
-					// 记录开始时间;
-					pCase->_ulStartTickCount = GetTickCount64();
-					pCase->_strStartTime = CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S"));
 				}
+				else { // 初始化失败;
+					pCase->_nExecutionState = 4;
+				}
+
+				// 标记任务为执行中;
+				pTask->_nExecutionState = 1;
+				// 记录开始时间;
+				pCase->_ulStartTickCount = GetTickCount64();
+				pCase->_strStartTime = CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S"));
 			}	
 		}
-		else
-		{
-			CScriptExecutor *pExcutor = (CScriptExecutor *)pCase->_pExcutor;
+		else {
+			//CScriptExecutor *pExcutor = (CScriptExecutor *)pCase->_pExcutor;
 		}
 	}
 
@@ -842,6 +841,10 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 							_case->_strFileName = stScriptUrlResp._strFileName;
 							_case->_strScriptPath = stScriptUrlResp._strScripFile;
 						}
+						else
+						{
+							OutputDebugString("下载脚本失败\n");
+						}
 					}
 
 					that->m_vtTask.push_back(*it);