Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

downloader

389
08 июля 2004 года
Dmitri
69 / / 20.08.2000
Я в непонятках. Пишу качалку файлов. Функция InternetOpenUrl не выполняется.

Код:
FILE *in;
DWORD ResumePos=0, BufferLen, SumSize=0;
HINTERNET hSession, hURL;
char Buffer[1024];
bool err;
in=fopen(edFile->Text.c_str(),"a+");
fseek(in,0,2);
nado=true;
  hSession=InternetOpen(ParamStr(0).c_str(),PRE_CONFIG_INTERNET_ACCESS,NULL,NULL,0);
// hURL не равен нулю, функция InternetOpenUrl не работает
hURL=InternetOpenUrl(hSession,edURL->Text.c_str(),NULL,0,0,0);
if(!hURL)
  ShowMessage("");
InternetQueryDataAvailable(hURL,&SumSize,0,0);
lbSize->Caption=SumSize;
if(ResumePos)
  InternetSetFilePointer(hURL,ResumePos,NULL,0,0);
do {
  err=InternetReadFile(hURL,Buffer,sizeof(Buffer),&BufferLen);
  if(!err) {
    Application->MessageBox("Îøèáêà","Îøèáêà",MB_OK|MB_ICONERROR);
    exit(0);
  }
  fwrite(&Buffer,BufferLen,1,in);
  Application->ProcessMessages();
} while(BufferLen!=0 || nado==true);


Кто что думает насчет этого?
389
09 июля 2004 года
Dmitri
69 / / 20.08.2000
!
389
09 июля 2004 года
Dmitri
69 / / 20.08.2000
В смысле hURL равен нулю. GetLastError -- 1 2 0 0 6. Сначала вываливается на if(!hURL), затем на if(!err).
487
11 июля 2004 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by Dmitri
Я в непонятках. Пишу качалку файлов. Функция InternetOpenUrl не выполняется.

Код:
FILE *in;
DWORD ResumePos=0, BufferLen, SumSize=0;
HINTERNET hSession, hURL;
char Buffer[1024];
bool err;
in=fopen(edFile->Text.c_str(),"a+");
fseek(in,0,2);
nado=true;
  hSession=InternetOpen(ParamStr(0).c_str(),PRE_CONFIG_INTERNET_ACCESS,NULL,NULL,0);
// hURL не равен нулю, функция InternetOpenUrl не работает
hURL=InternetOpenUrl(hSession,edURL->Text.c_str(),NULL,0,0,0);
if(!hURL)
  ShowMessage("");
InternetQueryDataAvailable(hURL,&SumSize,0,0);
lbSize->Caption=SumSize;
if(ResumePos)
  InternetSetFilePointer(hURL,ResumePos,NULL,0,0);
do {
  err=InternetReadFile(hURL,Buffer,sizeof(Buffer),&BufferLen);
  if(!err) {
    Application->MessageBox("Îøèáêà","Îøèáêà",MB_OK|MB_ICONERROR);
    exit(0);
  }
  fwrite(&Buffer,BufferLen,1,in);
  Application->ProcessMessages();
} while(BufferLen!=0 || nado==true);


Кто что думает насчет этого?



А ты hSession после создания проверяешь? Он то тоже может быть NULL.

И второе - ты уверен что все правильно написал?
если у тебя hURL будет равен NULL - закачка у тебя все равно будет пытаться происходить? Каков тогда смысл проверки if(!hURL)?


NULL, это скорей всего -1, а не ноль.

Если hURL==NULL или GetLastError() вернет код отличный от нуля, тогда ф-ия не выполняется.


NULL он потому и NULL что равен 0. -1 - это INVALID_HANDLE_VALUE.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог