MFC: 获取可执行文件目录 + 写日志函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC: 获取可执行文件目录 + 写日志函数相关的知识,希望对你有一定的参考价值。

获取可执行文件目录

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( "
" ) );//换行
    file.Flush();
    file.Close();
}

以上是关于MFC: 获取可执行文件目录 + 写日志函数的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java 代码操作 MFC 对话框可执行文件

如何从 .NET 可执行文件中获取输出并传送到 MFC 应用程序?

Android 逆向修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )(代码片

MFC没有main函数也可以执行吗?急

如何获取控制台应用程序的执行目录

从 postgres 日志中获取可执行查询