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

Вниз

Handle dll   Найти похожие ветки 

 
Петя   (2004-05-03 13:59) [0]

Как в длл узнать собственный handle (который возвращает LoadLibrary)?


 
Palladin ©   (2004-05-03 14:08) [1]

Передай его туда


 
SammIk ©   (2004-05-03 14:14) [2]

Если я не ошибаюсь, лоадлибрари возвращает
указатель на образ фаила в памяти.
Следовательно тебе надо пропарсить память на налисие PE MZ зоголовка и наиденое значение будет  искомая величина,
но лучше конечно как посометопад Палладин


 
Петя   (2004-05-03 14:18) [3]

Palladin ©   (03.05.04 14:08) [1]
Спасибо, думал есть хитрые способы чтобы избежать этого :(.


 
Palladin ©   (2004-05-03 14:24) [4]

А чего так грусно. Кстати интересно, зачем он там тебе?


 
Петя   (2004-05-03 14:33) [5]

Palladin ©   (03.05.04 14:24) [4]

в длл есть формы. когда форма создается посылаю в exe посредством SendMessage сообщение что для текущей (как параметр handle длл) длл создалась новая форма, в деструкторе формы PostMessage  c сообщением что форма уничтожена (Action := caFree в OnClose), в exe, при получении, смотрю если нету болбше открытх форм для данной длл делаю FreeLibrary.


 
Palladin ©   (2004-05-03 15:10) [6]

в таком случае лучше завести счетчик созданных форм, так будет правильнее, потом при случае можно будет ввести контроль не только форм но и других ресурсов используемых в dll


 
Petr V. Abramov ©   (2004-05-03 16:02) [7]

FindClassHInstance


 
Петя   (2004-05-03 17:50) [8]

Palladin ©   (03.05.04 15:10) [6]
я так и делаю, а в качестве идентификатора этого счетчика использую handle длл.

Petr V. Abramov ©   (03.05.04 16:02) [7]
большое спасибо - кажется ото то что нужно.


 
Mim1 ©   (2004-05-03 18:20) [9]

Петя   (03.05.04 14:33) [5]

Так делать не очень красиво, так как операционная система делает примерно такоеже, при loadlibrary увеличивает счетчик, при freelibrary уменьшает. Если счетчик равен нулю то выгружает.


 
Петя   (2004-05-03 18:57) [10]

Mim1 ©   (03.05.04 18:20) [9]
может это и не красиво;) но для моей конкретной задачи - только так.


 
DrPass ©   (2004-05-03 23:09) [11]


> Как в длл узнать собственный handle (который возвращает
> LoadLibrary)?

Его содержит переменная HInstance. И не нужно ничего никуда передавать


 
default ©   (2004-05-03 23:11) [12]

Mim1 ©   (03.05.04 18:20) [9]
не выгружает, а освобождает
выгрузит ОС когда ей захочется


 
Юрий Зотов ©   (2004-05-03 23:34) [13]

> Как в длл узнать собственный handle

GetModuleHandle

Насчет FindClassHInstance: класс формы не обязательно сидит в той же DLL, в которой создается экземпляр формы. Он может сидеть и в BPL.



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

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

Наверх




Память: 0.49 MB
Время: 0.034 c
1-1083061788
siriusP
2004-04-27 14:29
2004.05.16
Прошу помощи продвинутых. Создание компоненты


3-1081928170
Patrick
2004-04-14 11:36
2004.05.16
Свойство IDENTITY


1-1083227462
AmazdDexter
2004-04-29 12:31
2004.05.16
Random Form Show


14-1082971693
savva
2004-04-26 13:28
2004.05.16
учитесь:))


3-1082349604
Slavik_v
2004-04-19 08:40
2004.05.16
Суммирование записей с одиниковым значением в поле Field