понятно. И в этом же окне печатаются команды ? а что за команды которые используют русские символы ?
Вроде как я понял по тексту орбработка консольных команд идет в функции DefReturnResult DefScriptPackage::RunSingleLine(std::string line)
эта команда заменяет какие-то переменные на их значения, заполняет структуру CmdSet и передает ее дальше на исполнение:
DefScriptPackage::Interpret(CmdSet& Set)
тут идет перебор встроенных команд и если найдена то отдается выполнение найденой функции, если нет, пытается запустить какой-то внешний скрипт
В общем предлагаю в эту функцию:
Код:
void PseuInstance::ProcessCliQueue(void)
{
std::string cmd;
while(_cliQueue.size())
{
cmd = _cliQueue.next();
try
{
GetScripts()->RunSingleLine(cmd);
}
catch(...)
{
logerror("Exception while executing CLI command: \"%s\"",cmd.c_str());
}
}
}
вставить конвертацию и посмотреть что вышло -)
примерно так:
Код:
void PseuInstance::ProcessCliQueue(void)
{
std::string cmd;
while(_cliQueue.size())
{
cmd = _cliQueue.next();
try
{
char *charutf8 = str_convert(cmd.c_str(), 866, CP_UTF8);
std::string strutf8(charutf8);
GetScripts()->RunSingleLine(strutf8);
delete[] charutf8;
}
catch(...)
{
logerror("Exception while executing CLI command: \"%s\"",cmd.c_str());
}
}
}
ну а в начало файла засунуть определение функции char* str_convert(const char *buf, UINT codepage_from, UINT codepage_to), так как она описана выше.