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
반응형