Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.032 c
3-1082433154
SerKom
2004-04-20 07:52
2004.05.16
Тип объекта неизвестен, а имя свойство точно известно


1-1083221337
Master Paleva
2004-04-29 10:48
2004.05.16
Таскбар


3-1082561117
mur
2004-04-21 19:25
2004.05.16
ещё раз про поиск через SQL


1-1083140421
Бегун
2004-04-28 12:20
2004.05.16
Приклеить окно к другому окну


14-1083157053
Vvv
2004-04-28 16:57
2004.05.16
Сетевые приколы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский