반응형
유니코드 텍스트파일의 첫 해더의 경우 일반 아스키 텍스트파일과 틀리기때문에 약간의 조작? 이 필요함
음.. 좀더 간단하게 고쳐야할 필요성도있지만 일딴 쓰셔되될듯~ ㅎㅎ
예제코드
void UniCodeFileTouch()
{
HANDLE hFile;
hFile = CreateFile(LOG_FILE_PATH ,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ, 0,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
if (hFile == NULL)
return;
TCHAR szTmp[2];
WORD wd = 0xfeff;
DWORD dwBytes;
memcpy(szTmp, &wd, 2);
WriteFile(hFile , szTmp, 2*sizeof(TCHAR), &dwBytes, 0);
CloseHandle(hFile);
}
void DumpMsg( const WCHAR * szFmt , ... )
{
static BOOL startFlag = TRUE;
HANDLE hFile;
va_list arg;
DWORD dwBytes;
int len;
WCHAR szBuf[2048] ={0,};
char pBuf[4096] = {0,};
UniCodeFileTouch();
va_start(arg, szFmt);
vswprintf(szBuf, szFmt, arg);
va_end(arg);
hFile = CreateFile(LOG_FILE_PATH , GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
SetFilePointer(hFile , 0, NULL, FILE_END);
len = wcslen(szBuf)*2;
WriteFile(hFile , szBuf, len, &dwBytes, 0);
CloseHandle(hFile);
}
사용법
DumpMsg(L" Struct Length = %d\r\n", pConfig->Configuration.Length);
반응형