SDC C-Project CF Review 프로그램
LYW
2021-08-17 9aa3a8ff940e89bb0b5c75bc8abd0864e4c85874
ReviewSystem/ReviewSystem/DisplayMessage.cpp
@@ -8,6 +8,12 @@
   SetPath(strPath);
   // #3417 LYWCF AOI Review 전설비 Log Process개선 ADD START
   DWORD  dwThreadId = 0;
   HANDLE hThread = CreateThread(NULL, 0, RunThreadDisplayLog, NULL, 0, &dwThreadId);
   m_ThreadId = dwThreadId;
   // #3417 LYWCF AOI Review 전설비 Log Process개선 ADD END
   InitializeCriticalSection(&m_csLog);
}
@@ -18,6 +24,8 @@
      delete m_pFileLog;
      m_pFileLog = NULL;
   }
   PostThreadMessage(m_ThreadId, WM_QUIT, 0, 0);
   DeleteCriticalSection(&m_csLog);
}
@@ -50,31 +58,58 @@
   return TRUE;
}
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD START
void CDisplayMessage::DisplayMessage(const CString& strMessage)
{
   WriteToFile(strMessage);
//    WriteToFile(strMessage);
//
//    if(m_pDM2P)
//    {
//       m_pDM2P->DM2P_DisplayMessage(strMessage);
//    }
   CString* pstrLog = new CString(strMessage);
   PostThreadMessage(m_ThreadId, WM_DIPLAY_LOG, reinterpret_cast<WPARAM>(pstrLog), 0);
   if(m_pDM2P)
   {
      m_pDM2P->DM2P_DisplayMessage(strMessage);
   }
}
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD END
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD START
void CDisplayMessage::DisplayMessage(const TCHAR* lpstrFormat, ...)
{
   va_list list;
   TCHAR strText[2000] = {0};
   va_start(list, lpstrFormat);
   _vstprintf_s(strText, lpstrFormat, list);
   va_end(list);
   WriteToFile(strText);
   if(m_pDM2P)
   try
   {
      m_pDM2P->DM2P_DisplayMessage(strText);
      va_start(list, lpstrFormat);
      _vstprintf_s(strText, lpstrFormat, list);
      va_end(list);
      CString* pstrLog = new CString(strText);
      PostThreadMessage(m_ThreadId, WM_DIPLAY_LOG, reinterpret_cast<WPARAM>(pstrLog), 0);
   }
   catch (...)
   {
      return;
   }
//    WriteToFile(strText);
//
//    if(m_pDM2P)
//    {
//       m_pDM2P->DM2P_DisplayMessage(strText);
//    }
}
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD END
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD START
void CDisplayMessage::ThreadDisplayMessage(const CString& strMessage)
{
   WriteToFile(strMessage);
   if (m_pDM2P)
   {
      m_pDM2P->DM2P_DisplayMessage(strMessage);
   }
}
@@ -82,7 +117,7 @@
{
   if(m_pFileLog == NULL)   return FALSE;
   EnterCriticalSection(&m_csLog);
   //EnterCriticalSection(&m_csLog);
   CTime   time = CTime::GetCurrentTime();
   CString   strTimeStamp = _T("");
@@ -95,7 +130,8 @@
      // 유니코드 파일의 시작은 BOM(0xFEFF) 이어야 한다.
      TCHAR strCommand = 0xFEFF;
      CString strLog = _T("");
      strTimeStamp.Format(_T("[%02d:%02d:%02d]"), time.GetHour(), time.GetMinute(), time.GetSecond());
      //strTimeStamp.Format(_T("[%02d:%02d:%02d]"), time.GetHour(), time.GetMinute(), time.GetSecond());
      strTimeStamp.Format(_T("[%02d:%02d:%02d:%02d:%02d:%02d]"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
#ifdef UNICODE
      strLog.Format(_T("%c%s %s\r\n"), strCommand, strTimeStamp, strMessage);
#else
@@ -107,10 +143,29 @@
      m_pFileLog->Close();
   }
   LeaveCriticalSection(&m_csLog);
   //LeaveCriticalSection(&m_csLog);
   return TRUE;
}
DWORD RunThreadDisplayLog(LPVOID param)
{
   MSG msg;
   while (GetMessage(&msg, NULL, 0, 0))
   {
      CString* pstrLog = reinterpret_cast<CString*>(msg.wParam);
      switch (msg.message)
      {
      case WM_DIPLAY_LOG:
         g_pLog->ThreadDisplayMessage(*pstrLog);
         delete pstrLog;
         break;
      default:
         break;
      }
   }
   return 0;
}
// #3417 LYWCF AOI Review 전설비 Log Process개선 ADD END