Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Как вызвать FreeLibraryAndExitThread из VC++? 29.06.01 10:21 Число просмотров: 1174
Автор: 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
|
|
|