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

Вниз

Как из DLL выгрузить самого себя?   Найти похожие ветки 

 
Volf_555 ©   (2006-04-09 00:04) [0]

То есть:
- есть некая DLL
- в неё добавлена форма с кнопкой
- после нажатия на кнопку происходит определённое событие
- после этого DLL должна прекрать своё выполнение
Пробывал прописывать Form1.Close - нуль
                               Form1.Free - нуль
                               Application.Terminate - нуль
Так как можно завершить работу DLL по нажатии на кнопке?


 
Verg ©   (2006-04-09 00:13) [1]

DLL - не выполняется! Это библиотека - набор знаний и методов. Какое, нахрен "выполнение"? Как кормушка для птиц может перестать кушать?


 
Volf_555 ©   (2006-04-09 00:24) [2]

Ну, ссори - так выразился :)
Суть вопроса я думаю понятна какая. Нужно выгрузить DLL после нажатия на кнопке.
Как это сделать?


 
EvS ©   (2006-04-09 00:32) [3]

хотя бы сюда для начала загляни
http://www.delphimaster.ru/articles/dll_use/index.html


 
Юрий Зотов ©   (2006-04-09 01:02) [4]

> Volf_555 ©   (09.04.06 00:24) [2]

При нажатии на кнопку DLL вызывает PostMessage и шлет сообщение основной программе, а та, получив сообщение, выгружает DLL.


 
TUser ©   (2006-04-09 10:15) [5]

А потом Вася Пупкин пошет другую программу, которая dll цепляет, а сообщение не ловит. Нельзя дать гарантий.


 
GrayFace ©   (2006-04-09 10:31) [6]

Ну и пусть не ловит. Невыгруженная библиотека мешать не будет (не должна). Вообще, еще подумай, надо ли вообще ее выгружать.


 
Volf_555 ©   (2006-04-09 15:19) [7]


> EvS ©   (09.04.06 00:32) [3]
> хотя бы сюда для начала загляни
> http://www.delphimaster.ru/articles/dll_use/index.html

Эти основы я знаю


> Юрий Зотов ©   (09.04.06 01:02) [4]
> > Volf_555 ©   (09.04.06 00:24) [2]
>
> При нажатии на кнопку DLL вызывает PostMessage и шлет сообщение
> основной программе, а та, получив сообщение, выгружает DLL.
>

Идея интересна, но только в основной программе нужно написать обработчик определённого сообщения. А из dll послать это сообщение. Как сделать так?


> TUser ©   (09.04.06 10:15) [5]
> А потом Вася Пупкин пошет другую программу, которая dll
> цепляет, а сообщение не ловит. Нельзя дать гарантий.

Согласен... Но пост №4 как бы один из вариантов


> GrayFace ©   (09.04.06 10:31) [6]
> Ну и пусть не ловит. Невыгруженная библиотека мешать не
> будет (не должна). Вообще, еще подумай, надо ли вообще ее
> выгружать.

Может быть она мешать и не будет, но часть памяти она занимать будет. Так что лучше всего её загружать и выгружать


 
DrPass ©   (2006-04-09 16:31) [8]


> Может быть она мешать и не будет, но часть памяти она занимать
> будет.

Правильно написанная библиотека занимать лишнюю память не будет, а будет отображаться в адресное пространство непосредственно из своего файла на диске, и лишь при обращении попадать в ОЗУ.


 
Leonid Troyanovsky ©   (2006-04-09 19:33) [9]


> Volf_555 ©   (09.04.06 15:19) [7]

> обработчик определённого сообщения. А из dll послать это
> сообщение. Как сделать так?


Сделать обработчик (message WM_USER+..).
Послать - PostMessage.

--
Regards, LVT.


 
GrayFace ©   (2006-04-10 14:02) [10]


> Volf_555 ©   (09.04.06 15:19) [7]
> > Юрий Зотов ©   (09.04.06 01:02) [4]
> > > Volf_555 ©   (09.04.06 00:24) [2]
> >
> > При нажатии на кнопку DLL вызывает PostMessage и шлет
> сообщение
> > основной программе, а та, получив сообщение, выгружает
> DLL.
> >
>
> Идея интересна, но только в основной программе нужно написать
> обработчик определённого сообщения. А из dll послать это
> сообщение. Как сделать так?

Определенное сообщение - RegisterWindowMessage или WM_USER+*. А можно завести переменную/функцию, которая будет говорить, надо ли выгрузить, и слать что угодно, хоть WM_NULL.


> Volf_555 ©   (09.04.06 15:19) [7]
> > GrayFace ©   (09.04.06 10:31) [6]
> > Ну и пусть не ловит. Невыгруженная библиотека мешать не
>
> > будет (не должна). Вообще, еще подумай, надо ли вообще
> ее
> > выгружать.
>
> Может быть она мешать и не будет, но часть памяти она занимать
> будет. Так что лучше всего её загружать и выгружать

Зависит от частоты загрузки. Загрузка занимает время - если оно важно, то лучше оставить в памяти.



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

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

Наверх




Память: 0.5 MB
Время: 0.049 c
3-1141405315
Arazel
2006-03-03 20:01
2006.04.23
Нужна информация. Экспертный системы, Помогите найти...


15-1144046910
cyc
2006-04-03 10:48
2006.04.23
Законно ли оно?


2-1144271250
Farpik
2006-04-06 01:07
2006.04.23
ОБНОВИТЬ!


4-1138956993
hgd
2006-02-03 11:56
2006.04.23
Подскажите о методе нажатия кнопку в другом приложении


3-1141202175
keymaster
2006-03-01 11:36
2006.04.23
Виснет запрос.