string Format(BOOL bDebug, const char *fmt, ...) { va_list args; va_start(args, fmt); UINT size=1024; char *buff=new char[size]; int ret; while ( (ret=_vsnprintf(buff, size, fmt, args)) == -1) { delete buff; size*=2; buff=new char[size]; } va_end(args); string rstr(buff); if (ret==size) buff[size-1]=NULL; if (bDebug) OutputDebugString(buff); delete buff; return rstr; }