64,682
社区成员
发帖
与我相关
我的任务
分享
void test( const TCHAR * format, ... )
{
va_list args;
int len;
TCHAR * buffer;
_tsetlocale( LC_ALL, _T(""); // 按当前 Windows 区域设置 locale
va_start( args, format );
len = _vsctprintf( format, args ) + 1 // _vscprintf 不计算末尾 '\0'
buffer = malloc( len * sizeof( TCHAR ) );
_vstprintf( buffer, format, args );
......
free( buffer );
}
char logstr[1024];
#define ARRSIZE(x) (sizeof(x)/sizeof(x[0]))
void LogV(const char *pszFmt,va_list argp) {
//...
if (-1==vsnprintf(logstr,ARRSIZE(logstr),pszFmt,argp)) logstr[ARRSIZE(logstr)-1]=0;
//...
}
void Log(const char *pszFmt,...) {
va_list argp;
va_start(argp,pszFmt);
LogV(pszFmt,argp);
va_end(argp);
}