Не работает корректный вывод русских букв - C (СИ)
Формулировка задачи:
Доброго времени суток. Работаю в графическом режиме Столкнулся с проблемой, что функция printf нивкакую не хочет выводить русский текст. outtext и outtextxy выводят нормально, а ghbyna нивкакую. Скачал keyrus не помогло. Или подскажите, как сделать ввод в графическом режиме, что бы введеное значение выводило в указанную точку экрана.(scanf только по строкам пишет)
Решение задачи: «Не работает корректный вывод русских букв»
textual
Листинг программы
case evKeyDown:
{
saveState();
if (strchr(padKeys,event.keyDown.charScan.scanCode) && (event.keyDown.controlKeyState & kbShift))
{
event.keyDown.charScan.charCode = 0;
if (anchor < 0)
{
anchor = curPos;
}
}
else
{
anchor = -1;
}
switch(event.keyDown.keyCode)
{
case kbLeft:
{
if (curPos > 0)
{
--curPos;
}
break;
}
case kbRight:
{
if (curPos < strlen(data))
{
++curPos;
}
break;
}
case kbHome:
{
curPos = 0;
break;
}
case kbEnd:
{
curPos = strlen(data);
break;
}
case kbBack:
{
if (curPos > 0)
{
strcpy(data+curPos-1,data+curPos);
--curPos;
if (firstPos > 0)
{
--firstPos;
}
checkValid(true);
}
break;
}
case kbDel:
{
if (selStart == selEnd)
{
if (curPos < strlen(data))
{
selStart = curPos;
selEnd = curPos + 1;
}
}
deleteSelect();
checkValid(true);
break;
}
case kbIns:
{
setState(sfCursorIns,bool(!(state & sfCursorIns)));
break;
}
default:
{
if (event.keyDown.charScan.charCode >= ' ')
{
deleteSelect();
if (state & sfCursorIns)
{
// The following must be a signed comparison!
if (curPos < (short) strlen(data))
{
strcpy(data + curPos,data + curPos + 1);
}
}
if (checkValid(true))
{
if (strlen(data) < maxLen)
{
if (firstPos > curPos)
{
firstPos = curPos;
}
memmove(data+curPos+1,data+curPos,strlen(data+curPos)+1);
data[curPos++] = event.keyDown.charScan.charCode;
}
checkValid(false);
}
}
else if (event.keyDown.charScan.charCode == CONTROL_Y)
{
*data = 0;
curPos = 0;
}
else
{
return;
}
break;
}
}
adjustSelectBlock();
if (firstPos > curPos)
{
firstPos = curPos;
}
i = curPos - size.x + 2;
if (firstPos < i)
{
firstPos = i;
}
drawView();
clearEvent(event);
break;
}