
12.12.2009, 18:30
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Неполучается загрузить капчу
Вот отрывок кода
Код:
....................................................................
rec=0;acum=0;
for(;;)
{
rec=recv(s,Sr,1024*1024,0);
Sr+=rec;
acum=acum+rec;
if(rec==0){Sr-=acum;break;}
}
closesocket(s);
alen=(strlen(Sr)-strlen(strstr(Sr,"\r\n\r\n")))+4;
Sr+=alen;//обрезка заголовка
Graphics::TBitmap * Bitmap = new Graphics::TBitmap;
TJPEGImage * examp = new TJPEGImage;
TMemoryStream *stM = new TMemoryStream;
br=acum-alen;//размер картинки
memcpy(img,Sr,br);//картинка копируется в буффер
stM->Position=0;
stM->Write((const void*)img,br);//в поток
examp->LoadFromStream(stM);//а тут ошибка 42
Bitmap->Assign(examp);
PaintBox1->Canvas->Draw(59,59,Bitmap);
delete examp;
delete Bitmap;
delete stM;
Sr-=alen;
....................................................................
Conten-Length нету в content type image\jpeg
Скачаный и "очищенный" от заголовка файл начинается :
Но всеравно компонента ругается 42й ошибкой =/
Путем метода тыка через сниффер оказалось что в моем коде размер картинки расчитывается на 12 байт больше чем показывает сниффер...Откудого они могут быть?И в какую часть файла попадают?
Последний раз редактировалось _nic; 12.12.2009 в 19:04..
|
|
|