Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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]

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



Страницы: 1 вся ветка

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

Наверх





Память: 0.44 MB
Время: 0.006 c
6-57834
_Alex_
2002-02-04 16:44
2002.04.18
как узнать список(hostname) доступных компов в сети


14-57850
drpass
2002-03-08 16:37
2002.04.18
Вся наша жизнь - дерьмо


1-57719
gray1
2002-04-08 12:54
2002.04.18
работа с ексель-файлами из делфи


1-57686
UDS
2002-04-07 20:35
2002.04.18
Как стрингу передать нецелое число и наоборот?


7-57901
ATLANTIDO
2002-01-25 13:35
2002.04.18
кЛАВА





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский