Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] [Win32] неее. вы не поняли... 28.05.02 04:35 Число просмотров: 940
Автор: BXS Статус: Незарегистрированный пользователь
|
дело вот в чем:
с помощью хука я закидываю ДЛЛ в чужой процесс(функция хука - это просто заглушка, она мне не нужна. мне нужен лишь вызов DllEntryPoint). DllEntryPoint делает следующее: а) выделяет память (из области чужого процесса разумееца) б) копирует туда обработчик Thread'а. в) запускает его
Все что делает Thread - это for(;;){WaitForSingleObject(событие,таймаут)}. событие - это индикатор на завершение Thread'а изнутри (как раз чтоб он с ExitThread выходил). я намеренно не генерю это событие (эт на всяк случай... чтоб было).
поскольку событие не выполняеца, то цикл повторяеца... таким образом я могу делать что-либо в чужом процессе.
а вот теперь самая гадкая вещь
после того как я закрываю хук, он выгружает ДЛЛ из области процесса. а эта зараза видимо освобождает всю выделенную во время работы память. поэтому по истечении таймаута мой Thread отсасывает по полной программы, потому что изпод него выдернули память как ковер.. вот он и вешает мне машину...
каким образом мне избежать этого - я не понимаю...
как мне сделать так, чтоб после выгрузки ДЛЛ (по завершению хука) у меня оставалась память а не нагло удалялась???????????????
|
|
|