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

понятно. И в этом же окне печатаются команды ? а что за команды которые используют русские символы ?

Вроде как я понял по тексту орбработка консольных команд идет в функции 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), так как она описана выше.

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