From bd13fa3f9396f1f681759f4623c55d5f91d74a9c Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 목, 29 7월 2021 11:42:19 +0900
Subject: [PATCH] Ongoing90 #3524 CF AOI Review 디포커스 알람 추가 및 FDC 보고 방식 개선

---
 ReviewHistory/ReveiwHistory/stdafx.cpp |  137 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 137 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/stdafx.cpp b/ReviewHistory/ReveiwHistory/stdafx.cpp
new file mode 100644
index 0000000..2c9e56f
--- /dev/null
+++ b/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;
+}
\ No newline at end of file

--
Gitblit v1.9.3