Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Карикатуры вместо сообщении об ошибках 
V
    Опции темы
IKM2007
Дата 27.11.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Доброго субботнего вечера.
Более подробно опишу проблему.
Система : Windows XP SP2 русифицированный
Компилятор : mingw 4.5.1

Если error типа std::exception, то сообщение e.what() выводиться нормально. Проблема возникает, когда error типа boost::system::error_code. В этом случае сообщения не отображаются, но опять таки не во всех случаях. Например в коде:
Код

void handle_accept(typename connection<IF>::connection_ptr new_connection, const boost::system::error_code& e) {
      std::cout << "new connection from: " << new_connection->socket().remote_endpoint().address().to_string() << std::endl;
      std::cout<<"error : "<<e.message()<<std::endl;//<--------------------------тут
      if ( !e ) {
         new_connection->start();
         this->start();
      } else {
         std::cout<<"error : "<<e.message()<<std::endl;
      }
   }

выводятся карикатуры, а здесь:
Код

void read_header_handler(const boost::system::error_code& e) {
      if ( !e ) {
         std::cout << "readed header: " << _header.c_array() << std::endl;
         std::cout << constants::decode_header(_header);
        boost::asio::async_read(
            _socket,
            boost::asio::buffer(_body, constants::decode_header(_header).body_length),
            boost::bind(
               &connection::read_body_handler,
               this->shared_from_this(),
               boost::asio::placeholders::error
            )
         );
      } else {
         std::cout << "read header finished with error: " << e.message() << std::endl;//<---------------------тут
      }
   }

выводятся нормальные английские слова.

В чем может быть проблема?


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
bsa
Дата 27.11.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



может в том, что первое сообщение на русском языке в кодировке cp1251?
PM   Вверх
mes
Дата 27.11.2010, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(IKM2007 @  27.11.2010,  19:32 Найти цитируемый пост)
 std::cout<<"error : "<<e.message()<<std::endl;//<--------------------------тут
 if ( !e ) {

а это ничего, что message выводится, еще когда не проверено есть ли ошибка ?


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 27.11.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  27.11.2010,  21:12 Найти цитируемый пост)
а это ничего, что message выводится, еще когда не проверено есть ли ошибка ?

по умолчанию, должно выводится что-то типа "Ok" или "Success". где-то в доке бустовской читал...
PM WWW   Вверх
IKM2007
Дата 27.11.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Проблема решилась командой chcp. chcp без параметров показывает в консоле текущую кодировку, изменить кодировку нужно так : chcp <номер кодировки>.
У меня нужно было в консоле сперва вводить chcp 1251 (кодировка Windows 1251), и только после этого запустить программу.

Цитата(bsa @  27.11.2010,  21:05 Найти цитируемый пост)
может в том, что первое сообщение на русском языке в кодировке cp1251? 

Это я знал, использовал функцию setlocale, не помогло. Поискал в инете, где то было написано что setlocale для русских букв в кодировке utf-8 не работает с gcc.

Цитата(mes @  27.11.2010,  21:12 Найти цитируемый пост)
а это ничего, что message выводится, еще когда не проверено есть ли ошибка ? 

да

тема закрыта, спасибо.

Это сообщение отредактировал(а) IKM2007 - 27.11.2010, 21:27


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
boostcoder
Дата 27.11.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(boostcoder @  27.11.2010,  21:19 Найти цитируемый пост)
должно выводится что-то типа "Ok" или "Success". где-то в доке бустовской читал... 

так и есть:
Код

#include <iostream>
#include <boost/system/system_error.hpp>

int main() {
   boost::system::error_code e;
   std::cout << e.message() << std::endl;
}


http://liveworkspace.org/code/91c03bf61c61...cbe5e2abf680dda
вывод:
Цитата

Success

PM WWW   Вверх
mes
Дата 27.11.2010, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  27.11.2010,  20:41 Найти цитируемый пост)
http://liveworkspace.org/code/91c03bf61c61...cbe5e2abf680dda
вывод:

спс... что то я даже и не подумал так проверить smile



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.