Показать сообщение отдельно
Старый 21.04.2011, 21:03   #39
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Код:
void logcustom(uint8 lvl, Color color, const char *str, ...)
{
	char *charutf8 = str_convert_log(str, CP_UTF8, 866);

    if(!str || loglevel < lvl)
        return;
    va_list ap;
    _log_setcolor(true,color);
    if(logtime)
        printf("%s ", GetTimeString().c_str());
    va_start(ap, charutf8);
    vprintf(charutf8, ap);
    va_end(ap);
    _log_resetcolor(true);

    printf("\n");

    if(logfile)
    {
        fprintf(logfile, "%s", getDateString().c_str());
        va_start(ap, charutf8);
        vfprintf(logfile, charutf8, ap);
        fprintf(logfile, "\n" );
        va_end(ap);
        fflush(logfile);
    }
    fflush(stdout);

	delete[] charutf8;
какая строчка вызывает падение ? так чисто визуально вроде не видно где тут можно рухнуть

P.S. этот код может быть не корректен, так как конвертируется только строка формата, а все параметры остаются в изначальной кодировке и если utf8 строки передаются в качестве параметра, то тут то и наступят грабли

Последний раз редактировалось Йоха; 21.04.2011 в 23:49.
Йоха вне форума   Ответить с цитированием