Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

Создать поток в DLL   Найти похожие ветки 

 
Sicwell   (2004-12-13 08:41) [0]

Имеется DLL - необходимо при загрузке приложения, к которому она  подключена создать поток, запустить его и дождаться его завершения, но проблема в том, что поток не начинает исполняться ! Не могу понять в чем проблема. Вот прототип кода:

procedure DLLEntryPoint(dwReason: DWORD);
begin
 case dwReason of
   DLL_PROCESS_ATTACH:
     begin
       HThread := CreateThread(nil, 0, @ThreadStart, nil, 0, ThreadID);
       WaitForSingleObject(HThread);
     end;
...
end;


 
vidiv ©   (2004-12-13 08:50) [1]

а Диспетчер задач что пишет? есть поток?


 
Sicwell   (2004-12-13 08:56) [2]

ProcessXP поток с таким ThreadID видит - так что поток есть.


 
Leonid Troyanovsky ©   (2004-12-13 11:34) [3]


> Sicwell   (13.12.04 08:41)  
> Имеется DLL - необходимо при загрузке приложения, к которому
> она  подключена создать поток, запустить его и дождаться
> его завершения, но проблема в том, что поток не начинает
> исполняться ! Не могу понять в чем проблема. Вот прототип
> кода:
>
> procedure DLLEntryPoint(dwReason: DWORD);

>        HThread := CreateThread(nil, 0, @ThreadStart, nil,
> 0, ThreadID);
>        WaitForSingleObject(HThread);
>      end;



В EntryPoint не должно быть функций ожидания (как, IMHO, и CreateThread).
При вызове функции загружающий длл поток входит в критическую  секцию,
которую освобождает лишь при выходе.
Подробности ищи в msdn.

--
С уважением, LVT.


 
DiamondShark ©   (2004-12-13 11:53) [4]

Поток не начнёт исполняться (хотя и создастся), пока не завершится DllEntryPoint.
Поэтому Wait* приведёт к дэдлоку.

А вообще, по логике написанного кода, никакой поток там нафиг не нужен.



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

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
1-1103010622
malamba
2004-12-14 10:50
2004.12.26
еще раз о treeview


14-1102332804
Чеширский Кот из Гондураса
2004-12-06 14:33
2004.12.26
Песни, посвященные Новому Году


3-1101802909
Russko
2004-11-30 11:21
2004.12.26
Проверка на "занятость" базы данных.


3-1101232909
SergP
2004-11-23 21:01
2004.12.26
DBGridEh. как запретить перемещение столбцов мышью


6-1097351939
BigvD.
2004-10-09 23:58
2004.12.26
Proxy & Delphi