Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Освободить DLL 
:(
    Опции темы
HappyLife
Дата 26.6.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



У меня программа не освобождает DLL.
DLL Содержит следующий код.

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <windows.h>
#pragma hdrstop

HHOOK pHook;

LRESULT __stdcall fHook(int iCode,WPARAM wParam,LPARAM lParam)
{
        CallNextHookEx(pHook,iCode,wParam,lParam);
}

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        switch(reason)
        {
                case DLL_PROCESS_ATTACH:
                        pHook = SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)fHook,hinst,0);
                        break;
                case DLL_THREAD_ATTACH:

                        break;
                case DLL_THREAD_DETACH:
                        UnhookWindowsHookEx(pHook);
                        break;
                case DLL_PROCESS_DETACH:
                        UnhookWindowsHookEx(pHook);
                        break;
        }
        return true;
}
//---------------------------------------------------------------------------


После загрузки моей программой вышепоказанной DLL и выгрузки программы, сама DLL не выгружается, вследствии чего у меня не получаеться её дальше усовершенствовать.

PM MAIL   Вверх
Damarus
Дата 26.6.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 1
Всего: 29



SetWindowsHookEx у тебя не там сделан  smile

Добавлено через 23 секунды
И UnhookWindowsHookEx соответственно тоже.
PM MAIL ICQ Jabber   Вверх
HappyLife
Дата 26.6.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



Почему не там? Я хочу чтобы хук мне устанавливал отдельный модуль, а не моя программа.
Мне интересно знать причину такого поведения.
PM MAIL   Вверх
dumb
Дата 26.6.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



если ставишь хук в DLL_PROCESS_ATTACH, то позаботься об однократном срабатывании кода установки хука(используй mutex или event), так как библиотека будет вгружаться во все gui-процессы, и, соответственно, DLL_PROCESS_ATTACH будет вызван многократно.

и return CallNextHookEx...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.