因為是個小工具,所以就簡單的利用CFile來寫Log,暫存到使用者的Temp目錄;不過因為是unicode,所以寫檔和轉換參數的時候要注意一下而已。
因為是個小工具,所以就簡單的利用CFile來寫Log,暫存到使用者的Temp目錄;不過因為是unicode,所以寫檔和轉換參數的時候要注意一下而已。不定參數的寫法還是第一次用XD
#pragma once
#include "stdafx.h"
#include "Windows.h"
static void WriteLog(LPCTSTR msg, ...)
{
TCHAR pszTmepPath[MAX_PATH];
GetTempPath(MAX_PATH, pszTmepPath);
CString pszFileName;
pszFileName.Format(_T("%sTool.log"), pszTmepPath);
//unicode參數處理
va_list args;
va_start(args, msg);
wchar_t* buffer = new wchar_t[1024];
vswprintf(buffer, msg, args);
//當前時間
CTime t = CTime::GetCurrentTime();
CString csDate = t.Format(_T("%m/%d %H:%M "));
csDate.AppendFormat(buffer);
CFile myFile;
CFileException fileException;
//如果檔案不存在就建立,存在就開啟
if (myFile.Open(pszFileName, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite, &fileException))
{
try
{
if(myFile.GetLength() == 0)
{
//為了unicode
myFile.Write("\xff\xfe", 2);
}
myFile.SeekToEnd();
myFile.Write(csDate, _tcslen(csDate) * 2);
myFile.Close();
}
catch(TCHAR* err)
{
TRACE(err);
}
}
OutputDebugString(csDate);
delete []buffer;
}