Application/MFC
[MFC] 한글 로그 파일 작성 (WideCharToMultiByte)
devsalix
2023. 4. 26. 18:08
728x90
로그파일에 한글을 쓰고 싶다면 아래와 같은 함수를 작성하면 됩니다
BOOL CMyClass::WriteLog(CString strLog)
{
HANDLE hFile;
SYSTEMTIME t;
CString strData;
CString strPath;
DWORD dwWrite;
GetLocalTime(&t);
strPath.Format(_T("C:\\Log_%04d-%02d-%02d.txt"), t.wYear, t.wMonth, t.wDay);
strData.Format(_T("%02d:%02d:%02d - %s\r\n"), t.wHour, t.wMinute, t.wSecond, strLog);
int iRes = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL);
char* szData = new char[iRes];
memset(szData, NULL, iRes);
WideCharToMultiByte(CP_ACP, 0, strData, -1, szData, iRes, NULL, NULL);
hFile = CreateFile(strPath, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
LARGE_INTEGER li;
DWORD dwSize = GetFileSize(hFile, NULL);
li.QuadPart = dwSize;
SetFilePointerEx(hFile, li, NULL, FILE_BEGIN);
WriteFile(hFile, szData, strlen(szData), &dwWrite, NULL);
CloseHandle(hFile);
delete[] szData;
return TRUE;
}
delete[] szData;
return FALSE;
}
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형