Вот код для Йохи:
Код:
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;
}
И в аттаче компил для темпуры