Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

ГЛЮКИ TerminateProcess а   Найти похожие ветки 

 
kronos1   (2002-08-07 10:48) [0]

Как уведомить DLL`ки чужого процесса о его завершении
Согласен с тем, что данная функция отлично убивает процессы. Но после 3-4 убийств под Win"98 перестают грузится проги(игры в частности). Выдаётся сообщение о выполнении недопустимой операции и предлагается закрыть приложение. Возможно дело в Dll"ках, а может в чем другом. Люди добрые помогите кто чем может. Как избавится от этих глюков. Они меня уже достали. Пол Инета перелопатил, все знают об этих глюках но нигде нет ответа как их предотвратить.
Заранее благодарен.
Kronos.


 
paul_shmakov   (2002-08-07 11:41) [1]

то, о чем вы написали - это закономерные последствия использования TerminateProcess.
пробуйте сначала завершить процесс "по хорошему" (как это сделать - поиск, faq, статьи). вполне вероятно, что и не будет необходимости TerminateProcess вызывать.


 
Юрий Зотов   (2002-08-08 09:07) [2]

Какие же это глюки?

Программа запущена. Она что-то загрузила, что-то захватила, возможно, поставила какие-то хуки, возможно, переписала какие-то файлы - и т.д. При нормальном завершении она все это освобождает и восстанавливает - поскольку в ней есть соответствующий код.

Теперь вдруг ее во время работы вырубают где попало. Нужный код, естественно, не отрабатывает - до него просто не доходит дело. Какие могут быть последствия?

А кто его знает. Любые. Даже несмотря на то, что при завершении процесса система стремится освободить захваченные им ресурсы.

Что мы и имеем. И о чем Windows честно предупреждает, когда мы снимаем задачу через Task Manager.

Так что - какие же это глюки? Это как раз нормально.


 
Anatoly Podgoretsky   (2002-08-08 10:32) [3]

Да это не глюки, это другое


 
Filat   (2002-08-08 11:30) [4]

Exit Process
Функция Exit Process завершает процесс и все его нити и возвращает обычный код завершения. Это даёт возможность четкой остановки процесса, включая и выполнение кода отсоединения процесса от всех связанных с ним библиотек DLL. После завершения процесса состояние объекта этого процесса и объектов всех его нитей становится сигнальным. Состояние завершения процесса (возвращаемое функцией GetExitCodeProcess) изменяется со STILL_ACTIVE (все ещё активный) на код завершения, определённый параметром uExitCode. Завершение или удаление процесса из системы не оказывает влияния на порождённые процессы, которые он запускает. Объект процесса удаляется из операционной системы только в том случае, когда закрывается последний дескриптор этого процесса.

Синтаксис VOID Exit Process(UINT uExitCode)


 
paul_shmakov   (2002-08-08 13:53) [5]

2 Filat:
вот только беда - ExitProcess завершает только вызывающий процесс :)



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
4-56392
Mazenrat
2002-08-31 16:51
2002.10.17
Как зарегистрировать гарячие клавиши в приложении???


7-56371
XeN
2002-08-09 13:58
2002.10.17
Please...


6-56249
dim-
2002-08-16 22:56
2002.10.17
про WebBrowser


1-56057
Driver
2002-10-08 14:00
2002.10.17
TTreeView, как сохранить ссылку на элемент


8-56239
W1zard
2002-06-14 17:39
2002.10.17
MIDI в Дельфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский