Текущий архив: 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.034 c