Главная страница
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.041 c
15-1143543460
Nikolay M.
2006-03-28 14:57
2006.04.23
Обещал разместить здесь предсобеседовательную задачку


2-1144513418
FA
2006-04-08 20:23
2006.04.23
Динамические массивы в параметрах


2-1143981521
новичок111
2006-04-02 16:38
2006.04.23
Как сделать пакет данных???


3-1141049036
FH
2006-02-27 17:03
2006.04.23
Внутренняя ошибка программирования объектов (Access)


3-1140767621
Bee-Bee
2006-02-24 10:53
2006.04.23
Летит база от ShotDown, глюк сортировки, неверная сортировка