Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > DLL handle.


Автор: val 31.1.2006, 12:03
Привет всем!
Появилась небольшая задачка, пусть исполняется функция в некоторой ДЛЛ. В этой функции надо получить хэндл ДЛЛ, в которой выполняется эта функция... Примерно так. smile

Автор: Romikgy 31.1.2006, 12:10
А разве при вызове не передается?
Код

BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )


Автор: val 31.1.2006, 12:14
2 Romikgy.

Тут просто вызов довольно-таки специфический... Он через JNI происходит.

Автор: Romikgy 31.1.2006, 12:25
Цитата(val @ 31.1.2006, 11:14 Найти цитируемый пост)

Он через JNI происходит.

А что это ?
Исходник давай

Автор: val 31.1.2006, 12:39
Цитата

А что это ?


Ну вобщем, JNI - это вызов ДЛЛ-функции, написанной на С/С++, из приложения, написанного на Джава. Проблема в том, что мне надо в ДЛЛ установить глобальные хуки, а сами фунции-обработчики хуков тоже должны находится в ДЛЛ. Получается какой-то замкнутый круг. А очень желательно, чтобы установка хуков и их обработчики лежали в одной ДЛЛ.

Автор: val 31.1.2006, 13:12
Всем спасибо, тему можно закрывать, действительно, можно хэндл через DllMain получить...

Автор: supersonic 6.9.2006, 17:03
Можно еще через GetModuleHandle("c:\prog\libs\OUR.DLL") или просто GetModuleHandle("OUR.DLL") если наша OUR.DLL лежит в system32

Автор: _hunter 6.9.2006, 17:25
supersonic, ты думаеш что автора по прошествии восьми месяцев продолжает мачить этот вопрос? ;) (я уже не говорю про галку "вопрос решен")

Автор: supersonic 8.9.2006, 08:58
Ну ничего лишнего не бывает smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)