wxHTTP - отображение html содержимого |
Здравствуйте, гость ( Вход | Регистрация )
wxHTTP - отображение html содержимого |
Гость_wxFan_* |
12.9.2011, 16:00
Сообщение
#1
|
Гости |
Привет всем! Проблема заключается в отображении содержимого страницы с инета на консоль. Запрос успешно проходит, но вот попытка распаковать содержимое и впихать его в wxString приводит к переполнению wxString объекта. Без отладки это выглядит как пустая консолька, которая через некоторое время валится с ошибкой SIGSEGV. Валится прога после вызова Read. Сам вызов при отлаживании около 5сек происходит (курсор текущей строки отладки пропадает, после чего появляется вместе с SIGSEGV ошибкой на следующей после ...Read строки)
Функция, занимающаяся коннектом
Консолька
Если убрать код, занимающийся распаковкой gzip и записью распакованного содержимого в буфер, а взамен раскомментировать 3 строчки, то на хард успешно запишется файл 1.gzip (5кб), распаковав который архиватором получается файл без расширения (11кб), который содержит в себе нужную страницу. Несмотря на это запись файла в 5кб происходит подозрительно небыстро (может, около 5 сек +-): почти мгновенно появляется файл в 4кб и уже под конец еще кб добавляется и консолька завершает свою работу. MinGW, Win7 Sp1 Pro, CodeLite IDE 3.0.5045, wxWidgets 2.9.2 (unicode=on) |
|
|
Iron Bug |
12.9.2011, 20:18
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
тут возможны тонкости с кодировкой. почему бы не использовать wxChar вместо wxByte? он, по крайней мере, не будет зависеть от настроек компиляции проекта.
я вот даже навскидку не могу сказать, к чему он приведёт wxByte в конструкторе wxString и как он будет вычислять длину, которая в этом конструкторе не указана явно. а неявно там применяются методы преобразования строк, расписанные в документации на wxString и соответственно, разные методы вычисления длины строки. скорее всего, его заглючивает в этом месте и он не может преобразовать строки. я думаю, всё это отлично можно поглядеть в дебаге или хотя бы проверить длину полученной строки. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 10:07 |