|
|
|
|
/*********************************************************************
|
|
|
|
|
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD>
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2018/09/01
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־: 2018/09/01 logos <EFBFBD><EFBFBD>comm<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
***********************************************************************/
|
|
|
|
|
#pragma once
|
|
|
|
|
#ifndef DLL_INCLUDE_LOG_H
|
|
|
|
|
#define DLL_INCLUDE_LOG_H
|
|
|
|
|
|
|
|
|
|
#ifndef EXPORT_C
|
|
|
|
|
#define EXPORT_C extern "C"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef WINAPI
|
|
|
|
|
#define WINAPI __stdcall
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//<2F>˺<EFBFBD><CBBA>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ֵ(int)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пɿ<D0BF><C9BF><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><F2BBAFB4><EFBFBD>
|
|
|
|
|
#define RETURN_CHK(p, v) if (!(p)) \
|
|
|
|
|
{\
|
|
|
|
|
trace(LEVEL_WARN, __FILE__, __LINE__, __FUNCTION__, "return:%d", v); \
|
|
|
|
|
return (v); \
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>־<EFBFBD><D6BE>ӡ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//level <20><>ӡ<EFBFBD>ȼ<EFBFBD>
|
|
|
|
|
//pszlog <20><>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
|
|
|
|
//param ע<><D7A2>ʱ<EFBFBD><CAB1><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
|
|
|
|
typedef void (WINAPI *RECALL_LOG)(int level, const char* pszlog, void* param);
|
|
|
|
|
|
|
|
|
|
enum EM_LOG_LEVEL
|
|
|
|
|
{//<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>-<2D>ȼ<EFBFBD>
|
|
|
|
|
LEVEL_CRIT = 0,
|
|
|
|
|
LEVEL_ERR,
|
|
|
|
|
LEVEL_WARN,
|
|
|
|
|
LEVEL_INFO1,
|
|
|
|
|
LEVEL_INFO2,
|
|
|
|
|
LEVEL_INFO3,
|
|
|
|
|
LEVEL_INFO4,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡlog<6F>ӿ<EFBFBD>
|
|
|
|
|
#define LOG_INFO(msg, ...) trace(LEVEL_INFO1, 0, 0, 0, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_INF1(msg, ...) trace(LEVEL_INFO2, 0, 0, 0, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_INF2(msg, ...) trace(LEVEL_INFO3, 0, 0, 0, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_INF3(msg, ...) trace(LEVEL_INFO4, 0, 0, 0, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_WARN(msg, ...) trace(LEVEL_WARN, __FILE__, __LINE__, __FUNCTION__, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_ERR(msg, ...) trace(LEVEL_ERR, __FILE__, __LINE__, __FUNCTION__, msg, __VA_ARGS__)
|
|
|
|
|
#define LOG_CRIT(msg, ...) trace(LEVEL_CRIT, __FILE__, __LINE__, __FUNCTION__, msg, __VA_ARGS__)
|
|
|
|
|
|
|
|
|
|
struct TLogConfig
|
|
|
|
|
{//<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
int logLevel; //<2F><>ӡ<EFBFBD>ȼ<EFBFBD> <20><><EFBFBD><EFBFBD> LEVEL_WARN <20><><EFBFBD><EFBFBD> LEVEL_INFO3
|
|
|
|
|
int bJustSave; //<2F><>־<EFBFBD><D6BE>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浽<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>Ľϴ<C4BD>
|
|
|
|
|
int buffsize; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С <20><>λ<EFBFBD><CEBB>Byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ܴ<EFBFBD><DCB4>ļ<EFBFBD><C4BC>п<EFBFBD>
|
|
|
|
|
int filesize; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С <20><>λ<EFBFBD><CEBB>MByte
|
|
|
|
|
int autoClear; //<2F><>־<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD> 1<><31><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int clearDay; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- 0 <20><>Ч
|
|
|
|
|
int clearCount; //<2F>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8>ļ<EFBFBD> -- 0 <20><>Ч
|
|
|
|
|
int clearSize; //<2F>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><4D>־<EFBFBD>ļ<EFBFBD> -- 0 <20><>Ч <20><>λ<EFBFBD><CEBB>MByte
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define LOG_MAX_BUFF 10240 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
#define LOG_NAME "sys.log"
|
|
|
|
|
#define LOG_CFG_KEY "log" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>(data\\sys.cfg)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>key [log]
|
|
|
|
|
#define LOG_SAVE_FLAG "justSave" //<2F><>־<EFBFBD><D6BE>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> Ĭ<><C4AC> justSave=0
|
|
|
|
|
#define LOG_LEVEL "level" //<2F><>־<EFBFBD><D6BE>ӡ<EFBFBD>ȼ<EFBFBD> Ĭ<><C4AC> level=4
|
|
|
|
|
#define LOG_BUFF_SIZE "buff_size" //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С Ĭ<><C4AC> buff_size=4096
|
|
|
|
|
#define LOG_FILE_SIZE "file_size" //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С Ĭ<><C4AC> file_size=20
|
|
|
|
|
#define LOG_CLEAR_FLAG "clear" //<2F><>־<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<><C4AC> clear=1
|
|
|
|
|
#define LOG_CLEAR_DAY "clear_day" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<><C4AC> clear_day=15
|
|
|
|
|
#define LOG_CLEAR_CNT "clear_count" //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8>ļ<EFBFBD> Ĭ<><C4AC> clear_count=0
|
|
|
|
|
#define LOG_CLEAR_SIZE "clear_size" //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ļ<EFBFBD> Ĭ<><C4AC> clear_size=0
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ģ<EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI log_init();
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>־ģ<EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>N<EFBFBD>ξ<EFBFBD>Ҫ<EFBFBD>ͷ<EFBFBD>N<EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI log_deinit();
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: pcfg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Output: pcfg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI get_log_config(TLogConfig* pcfg);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: pcfg <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI set_log_config(const TLogConfig* pcfg);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浱ǰ<EFBFBD><EFBFBD>־<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*PS: <EFBFBD><EFBFBD><EFBFBD>ô˽ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD>رճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鿴<EFBFBD><EFBFBD>־<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI save_now_log();
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ӡlog<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: LogLevel<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD>𣬷<EFBFBD>Ϊinfo1, info2, info3, warn error crit
|
|
|
|
|
file <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>, warn<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
line <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>, warn<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
fun <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, warn<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
msgFormat <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>printf<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>ͬ
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>1024<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI trace(int LogLevel, const char* file, int line, const char* fun, const char *pszFormat, ...);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ӡlog<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>vb/c#<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Intput: LogLevel<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD>𣬷<EFBFBD>Ϊinfo1, info2, info3, warn error crit
|
|
|
|
|
pszLog Ҫ<EFBFBD><EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI traces(int LogLevel, const char *pszLog);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡ<EFBFBD>ӿڣ<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
|
|
|
*Intput: rcLog <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
|
|
|
|
lparam <EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI regist_log_recv(RECALL_LOG rcLog, void* lparam);
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>ӡע<EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
*Intput: NULL
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI unregist_log_recv();
|
|
|
|
|
|
|
|
|
|
/****************************************************
|
|
|
|
|
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>0ʱ<EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ȡ
|
|
|
|
|
*Intput: pszLog <EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
nSize <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
start <EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>
|
|
|
|
|
*Output: NULL
|
|
|
|
|
*Return: <EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڴ<EFBFBD>С,ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
|
|
|
|
|
******************************************************/
|
|
|
|
|
EXPORT_C int WINAPI get_log_buff(char* pszLog, int nSize, int start = 0);
|
|
|
|
|
|
|
|
|
|
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|