Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Вниз

Почему это не хочет корректно работать в потоке? 


lipskiy   (2002-04-06 16:09) [0]

Есть функция проверки доступности URL (взята из каких-то FAQов). Когда вызываю ее из основного потока - все ок. А когда вызываю ее из своего пользовательского потока, то тоже отрабатывает нормально и даже программа дальше работает, но только до того момента, когда я активирую любое другое окна (свое или чужое - неважно, главное что мышкой активируется любое другой окно) вылетает ошибка raised exception class EWin32Error with message "Ошибка Win32. Код 1400. Недопустимый дескриптор окна" и при нажатии ОК и попытке продолжить - новое окно ошибки - нарушение доступа по адресу... в модуле ntdll.dll, после чего прога слетает напрочь.
Что это значит?

Вот эта функция:

function CheckUrl(URL:string):boolean;
var
hSession, hfile, hRequest: hInternet;
dwindex,dwcodelen :dword;
dwcode:array[1..20] of char;
res : pchar;
begin
if pos("http://",lowercase(url))=0 then
url := "http://"+url;
Result := false;
hSession := InternetOpen("InetURL:/1.0",
INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(
hsession,
pchar(url),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,
@dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
result:= (res ="200") or (res ="302");
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
end;



troits   (2002-04-06 17:12) [1]

Создал приложение с несколькими формами, в потоке (TThread) вызываю CheckUrl - все нормально. Потом можно переключаться между формами. Видимо, ошибка в другом!



lipskiy   (2002-04-06 21:42) [2]

Хм, ну да, вероятно.
Тогда труба, как это искать - методики себе не представляю...




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.036 c
7-57909           Lizard                2002-01-20 15:08  2002.04.18  
Какой модуль необходимо подключить чтобы сработала ShellExecute(0, nil,Pchar( explorer.exe ),nil,nil,1) ?


3-57583           Sysoper               2002-03-26 12:27  2002.04.18  
At End Of Table


1-57789           commm                 2002-04-05 17:40  2002.04.18  
как узнать имя (логин) текущего пользователя windows?


14-57864          Torry                 2002-03-11 21:18  2002.04.18  
Urgent - puppies


1-57795           Maxim Homutov         2002-04-06 12:06  2002.04.18  
Продлема с БПФ