Главная страница
    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.47 MB
Время: 0.04 c
1-1083529948
KEBZ
2004-05-03 00:32
2004.05.16
Text


3-1082018545
AGENT
2004-04-15 12:42
2004.05.16
Установка FIB


8-1074102210
miek
2004-01-14 20:43
2004.05.16
Демка "Граффити"


3-1082536432
din
2004-04-21 12:33
2004.05.16
Как вывести на форму текущий месяц


1-1083699312
ohiio
2004-05-04 23:35
2004.05.16
checklistbox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский