Отображение картинки от веб-серв
Отображение картинки от веб-серв
Доброе время суток.
Есть CGI-приложение отдающее картинку.
Подскажите пожалуйста способ или виджет для отображения такой картинки в приложении wxWidgets. wxHTML не подошел.
Спасибо.
Есть CGI-приложение отдающее картинку.
Подскажите пожалуйста способ или виджет для отображения такой картинки в приложении wxWidgets. wxHTML не подошел.
Спасибо.
Доброе время суток.
Для чтения картинки в 1.3 КБ пытаюсь использовать такой код.
Приложение собирается, стартует, минуты 3 оттягивает на себя все процессорное время,ест память до 20М. Дебаггер сообщает, что gifdecod.cpp(427): assert "ab_free < allocSize" failed.
VС++ 2005 EE при этом может захотеть перезапуститься.
Что можно предпринять ?
Благодарю.
Для чтения картинки в 1.3 КБ пытаюсь использовать такой код.
Приложение собирается, стартует, минуты 3 оттягивает на себя все процессорное время,ест память до 20М. Дебаггер сообщает, что gifdecod.cpp(427): assert "ab_free < allocSize" failed.
VС++ 2005 EE при этом может захотеть перезапуститься.
Code: Select all
wxHTTP http;
wxString updateurl="127.0.0.1";
http.SetHeader("Accept","text/*");
http.SetHeader("User-Agent","ADSC");
http.SetTimeout(120);
if (http.Connect(updateurl,8868))
{
wxInputStream *stream=http.GetInputStream("/alr/images/java_on.gif");
wxProtocolError err=http.GetError();
if (err==wxPROTO_NOERR)
{
wxImage image;
wxBitmap *mbmp;
if (!image.LoadFile(*stream,wxBITMAP_TYPE_GIF,-1))
wxLogError(wxT("Can't load GIFFFF image from stream"));
else
mbmp = new wxBitmap( image );
image.Destroy();
delete stream;
}
}
http.Destroy();
Благодарю.
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Code: Select all
bool wxTestApp::OnInit()
{
do
{
wxSocketBase::Initialize();
wxURL url(wxURI(wxT("http://forums.realcoding.net/uploads//av-7075.png")));
wxInputStream * stream = url.GetInputStream();
if(!stream) break;
wxMemoryBuffer buffer;
char byte(0);
while(!stream->Eof())
{
stream->Read(&byte, sizeof(byte));
buffer.AppendByte(byte);
}
if(!buffer.GetDataLen()) break;
wxFileOutputStream fileStream(wxT("test.png"));
if(!fileStream.IsOk()) break;
wxMemoryInputStream memStream(buffer.GetData(), buffer.GetDataLen());
fileStream.Write(memStream);
fileStream.Close();
wxMessageBox(_("Yo!"));
}
while(false);
// Прочая лобуда
}
процессор загружается полностью.Дальше этой строки не проходит
(WinXPSP2/MSVC++2005EE/wxWidgets 2.8.3)
Code: Select all
wxInputStream * stream = url.GetInputStream();
(WinXPSP2/MSVC++2005EE/wxWidgets 2.8.3)
Фильтрация не блокирует,антивирус не мешает,браузер аватару показывает.
Приложение с wxAUI,код со стримом содержится в методе главного фрейма.
WinXPSP2/MSVC++2005EE/wxWidgets 2.8.3
Попробую обновить библиотеку до 2.8.8.
У Смарта по стримам почти ничего.
Не пойму для чего эта строка
Судя по форумам - распространенная проблема.
Отдельное большое спасибо за wxwidgets.info .
Приложение с wxAUI,код со стримом содержится в методе главного фрейма.
WinXPSP2/MSVC++2005EE/wxWidgets 2.8.3
Попробую обновить библиотеку до 2.8.8.
У Смарта по стримам почти ничего.
Не пойму для чего эта строка
Code: Select all
wxSocketBase::Initialize();
Отдельное большое спасибо за wxwidgets.info .
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Code: Select all
wxSocketBase::Initialize();
По остальному, да, попробуй новую версию, если будут проблемы, будем думать дальше. CGI вызывается с локалхоста? Что в качестве Web-сервера? Apache/IIS? Если установлены оба, они точно не конфликтуют у тебя? Попробуй на какой-нить другой порт повесить, на любой выше 1024 например и посмотреть на результаты. Что происходит если запустить веб-сервер и CGI на виртуальной машине (чистая винда + твой веб-сервер) + бридж на сетевой интерфейс. Что происходит если в системе установить виртуальный loopback сетевой адаптер (есть в стандартном списке сетевых адаптеров)?
ЗЫ: поставь сниффер, собери проект в Debug и Release и посмотри не конектится ли приложение на адрес 0.0.0.0. У меня как-то в билдере были с этим траблы. Как себя ведет приложение с Multi Threaded [Debug] DLL сборкой?
Обновился на другой машине до 2.8.8.
Добавил
И заработало!!!
Спасибо.
Win2000Server/vc2005ee/wxWidgets 2.8.8
Добавил
Code: Select all
url.SetProxy(_T("myproxyip:myproxyport"));
Спасибо.
Win2000Server/vc2005ee/wxWidgets 2.8.8