информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsЗа кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Phrack #70/0x46 
 Возможно, Facebook наступил на... 
 50 лет электронной почте 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Как вызвать FreeLibraryAndExitThread из VC++? 29.06.01 10:21  Число просмотров: 1053
Автор: XR <eXtremal Research> Статус: The Elderman
Отредактировано 29.06.01 10:23  Количество правок: 1
<"чистая" ссылка>
> > А более конкретно ?
> Короче как мне получить гарантию, что всё, что должно
> сделаться между _endthread и ExitThread сделается, и при
> этом выгрузить библиотеку и завершить поток в ней.

Очень туманно излагаешь ... что значит ВСЕ?
или ты хочешь VC-шный аналог FreeLibraryAndExitThread() ???
проаналогХЗ не работал с VC лет несколько где то версии позже 4.1
но по МОЕМУ разумению он нах..(рен) ненужен...

>
> > Дык ее обычно просто вызывают и все ... ее смысл в том
> что
> > если DLL
> > создает собственный поток то в этом потоке вызов
> Subj-eвой
> > функции
> > выгружает эту DLL и корректно завершает сей поток ...
> Есть у меня поток, код которого в dll причём только этот
> поток может выгрузить dll. То есть FreeLibraryAndExitThread
> - именно то, что мне нужно, но я боюсь, что если я её
> просто вызову, то останется не освобождённой всё то, что
> было выделено рантайм библиотеками сишными до входа в
> процедуру моего потока.

Если ты не знаешь что выделялось то не сможешь и освободить разумеется ...
или опять же ищи аналог ... но, как мне кажется, RTL вряд ли плодит какие
то ресурсы при загрузке DLL ... зачем ей это ... она сама за собой чистит
при выгрузке себя.

Так что пробуй использовать subj


>
> > PS: Обычно чего то почистить руками можно в
> > DllMain()
> > в секции
> > case: DLL_PROCESS_DETACH
> > или
> > case: DLL_THREAD_DETACH
> > которая вызывается потоком вызвавшим либо FreeLibrary
> > либо ExitProcess
> Но как это сделать? Я же не знаю что чистить - это не моё,
> а vc++'ное.

То что не знаешь не чисти ...
RTL имеет свой механизм очистки ты ж не RTL пытаешся выгрузить я надеюсь :))

> Да мне и незачем там этим заниматься, кстати, - я и так
> могу вписать всё до FreeLibraryAndExitThread, но не знаю
> что, поскольку это не моя задача очищать не моё.
> Поэтому мне нужен библиотечный аналог для этой функции.
> Такой же, как _endthread для ExitThread. Или может есть
> другой способ: например функция, выполняющая _endthread, но
> не вызывающая ExitThread - думаю такой нет.

а чего по этому поводу говорит документация то ?
или на худой конец сделай дамп RTL
<programming> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach