Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: -0.974 c
1-1083572538
magician
2004-05-03 12:22
2004.05.16
Как просмотреть содержимое DLL.


14-1082685033
Думкин
2004-04-23 05:50
2004.05.16
С днем рождения! 23 апреля.


9-1072442625
MoGiLsHiKK
2003-12-26 15:43
2004.05.16
Первая игра???


14-1082707152
Alexei Sviridov
2004-04-23 11:59
2004.05.16
Наставте на путь истинный


14-1082632846
vopros
2004-04-22 15:20
2004.05.16
Не могу завести компьютер с XP в домен.




   Наверх