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

Вниз

Запуск Dll в отдельном потоке   Найти похожие ветки 

 
Dmitriy G. ©   (2005-08-11 17:16) [0]

Необходимо загрузить функцию из Dll и через некоторое время, если функция например зависла выгрузить dll из памяти и освободить все ресурсы, выделенные dll-кой в процессе работы.
Для этого создаю отдельный поток в котором собственно и загружаю dll-ку. Но проблема с прибиванием... Dll может запустить произвольный exe файл, в котором могут быть свои потоки... Поэтому приходится самому строить дерево процессов, закрывать все дочерние процессы и Handles, которые появились после загрузки библиотеки в порожденных процессах/потоках. В принципе работает но попадаются "неприятные" exe-ки у которых не получается закрыть все открытые Handle...
И вообще такая система не выглядит достаточно стройной... Может есть метод проще?

Заранее благодарен...


 
troits ©   (2005-08-11 18:42) [1]

А что значит - "не получается закрыть все открытые Handle."? Если процесс "пришибается", например TerminateProcess, то вместе с ним освобождаются все ресурсы, на которые не ссылаются другие процессы. То есть, следить надо только за процессами?


 
alpet ©   (2005-08-11 18:56) [2]

Что-то странно даже, если dll запускает произвольныйexe файл, какбы это к проблемам не привело потом.


 
Leonid Troyanovsky ©   (2005-08-11 19:10) [3]


> Dmitriy G. ©   (11.08.05 17:16)  


Туманно как-то.
Что это за функция, которая нуждается в запуске процессов?
И, почему, собс-но, в dll?
Да и какое ей дело до судьбы процессов?

Предположим, что нам очень надо вызвать функцию из некоторой
несамописной dll, в поведении которой мы не очень уверены.
Для этого, наиболее приемлем вариант с вызовом оной библиотечной
функции из отдельного процесса.
Т.е., надо сделать отдельное приложение, которое специализируется
на работе с этой библиотекой: принимает параметры, делает вызовы
и возвращает результат, например, через WM_COPYDATA.
В случае возникновения сложностей процесс прибивается,
вплоть до TerminateProcess.

Во всяком случае, никаких проблем с собс-ным приложением нет.

--
Regards, LVT.



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
6-1118698925
etr
2005-06-14 01:42
2005.10.09
Справка на русском языке по компанентам Indi


3-1125374821
Ярослав
2005-08-30 08:07
2005.10.09
Как получить id всех соединений с БД в текущий момент


14-1126787890
stone
2005-09-15 16:38
2005.10.09
Откуда пошел компьютерный сленг


14-1127197758
Иксик
2005-09-20 10:29
2005.10.09
Эллочка-людоедочка


1-1126861409
Slider007
2005-09-16 13:03
2005.10.09
Превью отчета на форме