SDC C-Project CF Review 프로그램
LYW
2021-09-14 ffe71aadfdcb4a9ea2ac4d8d320983d42ef3cad5
ReviewHistory/ReveiwHistory/stdafx.cpp
»õ ÆÄÀÏ
@@ -0,0 +1,137 @@

// stdafx.cpp : í‘œì¤€ í¬í•¨ íŒŒì¼ë§Œ ë“¤ì–´ ìžˆëŠ” ì†ŒìФ íŒŒì¼ìž…니다.
// ReveiwHistory.pch는 ë¯¸ë¦¬ ì»´íŒŒì¼ëœ í—¤ë”ê°€ ë©ë‹ˆë‹¤.
// stdafx.obj에는 ë¯¸ë¦¬ ì»´íŒŒì¼ëœ í˜•식 ì •ë³´ê°€ í¬í•¨ë©ë‹ˆë‹¤.
#include "stdafx.h"
CCriticalSection g_criticalExe;
CCriticalSection g_criticalLog;
CString   GetExePath()
{
   g_criticalExe.Lock();
   static TCHAR pBuf[256] = { 0, };
   memset(pBuf, NULL, sizeof(pBuf));
   if (AfxGetApp())
      GetModuleFileName(AfxGetApp()->m_hInstance, pBuf, sizeof(pBuf));
   else
      GetModuleFileName(NULL, pBuf, sizeof(pBuf));
   CString strFilePath;
   strFilePath.Format(_T("%s"), pBuf);
   strFilePath = strFilePath.Left(strFilePath.ReverseFind(_T('\\')));
   g_criticalExe.Unlock();
   return strFilePath.GetString();
}
void LOG(int nType, const char* fmt, ...)
{
   g_criticalLog.Lock();
   static _TCHAR szLog[5096];
   FILE*      fp = NULL;
   CTime      tm = CTime::GetCurrentTime();
   CString      strLog = _T("");
   CString      strPath = _T("");
   va_list      args;
   SYSTEMTIME   cur_time;
   if (fmt == NULL)
   {
      g_criticalLog.Unlock();
      return;
   }
   ZeroMemory(szLog, 5096);
   va_start(args, fmt);
   wvsprintf(szLog, fmt, args);
   va_end(args);
   strPath.Format("%s\\Log\\%s", GetExePath(), tm.Format("%Y_%m_%d_%H.log").GetString());
   fopen_s(&fp, (LPSTR)(LPCSTR)strPath, "a+");
   GetLocalTime(&cur_time);
   strLog.Format("%04d-%02d-%02d %02d:%02d:%02d:%03ld : ",
      cur_time.wYear,
      cur_time.wMonth,
      cur_time.wDay,
      cur_time.wHour,
      cur_time.wMinute,
      cur_time.wSecond,
      cur_time.wMilliseconds);
   if (fp != NULL)
   {
      switch (nType)
      {
      case Normal: strLog += _T("[NORMAL    ] : ");   break;
      case Dbg: strLog += _T("[DEBUG     ] : ");   break;
      case Operation: strLog += _T("[OPERATION ] : ");   break;
      case Err: strLog += _T("[ERROR     ] : ");  break;
      }
      strLog += szLog;
      fprintf(fp, "%s\r\n", (LPSTR)(LPCSTR)strLog);
      fflush(fp);
      fclose(fp);
   }
   g_criticalLog.Unlock();
}
void   INIWriteStr(CString strAppName, CString strKeyName, CString strValue, CString strFilePath)
{
   WritePrivateProfileString(strAppName, strKeyName, strValue, strFilePath);
}
CString   INIReadStr(CString strAppName, CString strKeyName, CString strFilePath)
{
   TCHAR szReturnString[1024] = { 0, };
   memset(szReturnString, NULL, 1024);
   GetPrivateProfileString(strAppName, strKeyName, _T(""), szReturnString, 1024, strFilePath);
   CString str;
   str.Format(_T("%s"), szReturnString);
   return str;
}
void   INIWriteInt(CString strAppName, CString strKeyName, int nValue, CString strFilePath)
{
   CString str;
   str.Format(_T("%d"), nValue);
   WritePrivateProfileString(strAppName, strKeyName, str, strFilePath);
}
int      INIReadInt(CString strAppName, CString strKeyName, CString strFilePath)
{
   TCHAR szReturnString[1024] = { 0, };
   memset(szReturnString, NULL, 1024);
   GetPrivateProfileString(strAppName, strKeyName, _T(""), szReturnString, 1024, strFilePath);
   int nRet = atoi(szReturnString);
   return nRet;
}