Показать сообщение отдельно
Старый 21.04.2011, 12:08   #36
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Вот код для Йохи:
Код:
char* str_convert_log(const char *buf, UINT codepage_from, UINT codepage_to)
{
	wchar_t* pResw = 0;
	char* pRes = 0;
	int res_len = 0;
	res_len = MultiByteToWideChar(codepage_from, 0, (LPCSTR)buf, -1, 0, 0);
	if (!res_len)
		return NULL;
	pResw = new wchar_t[res_len];
	if (!MultiByteToWideChar(codepage_from, 0, (LPCSTR)buf, -1, pResw, res_len))
	{
		delete[] pResw;
		return NULL;
	}
	res_len = WideCharToMultiByte(codepage_to, 0, pResw, -1, 0, 0, 0, 0);
	if (!res_len)
		return 0;
	pRes = new char[res_len];
	if (!pRes)
		return NULL;
	if (!WideCharToMultiByte(codepage_to, 0, pResw, -1, pRes, res_len, 0, 0))
	{
		delete[] pRes;
		return NULL;
	}
	delete[] pResw;
	return pRes;
}

***

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;
}
И в аттаче компил для темпуры
Вложения
Тип файла: 7z PseuWoW.7z (3.42 Мб, 621 просмотров)
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (21.04.2011)