获取可执行文件目录

inline CString GetExeDir()
{
	TCHAR szPath[ MAX_PATH ] = { 0 };
	GetModuleFileName( NULL, szPath, MAX_PATH );

	CString csFullPath( szPath );
	int nPos = csFullPath.ReverseFind( _T( '\\' ) );
	if( nPos < 0 )
		return CString( "" );
	else
		return csFullPath.Left( nPos );
}

写日志函数

#include <locale> 

inline void WriteLog( const CString& strLog )
{	
	setlocale( LC_CTYPE, ( "chs" ) );//写入中文

	CTime tm = CTime::GetCurrentTime();
	CString strLogDir = GetExeDir() + "/Log/" + tm.Format( "%Y-%m" );
	if( !PathIsDirectory( strLogDir ) )
		CreateDirectory( strLogDir, 0 );
	
	CString strFilePath = strLogDir + tm.Format( "/Sensitive-%Y-%m-%d.txt" );	
	CString strLogText = tm.Format( "[%Y-%m-%d %H:%M:%S]: " ) + strLog;

	CStdioFile  file;
	BOOL bOpen = file.Open( strFilePath, CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate );
	if( !bOpen )
		return;
	file.SeekToEnd();
	file.WriteString( strLogText );
	file.WriteString( _T( "\r\n" ) );//换行
	file.Flush();
	file.Close();
}