Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Убийство процесса из Dll'ки.

3.7K
11 декабря 2005 года
Techtor
43 / / 12.09.2004
Как убить определённый процесс из DLL'ки? Пробовал ТerminateProcess, но ему, насколько я понял, нужен HANDLE процесса, да ещё и с привилегиями, и ExitCode. Из того что я знаю про данную ф-цию - её нежелательно вызывать из Dll'ок. Ничего другого я не смог найти. Вообщем если кто знает - подскажите.
1.8K
13 декабря 2005 года
SeregaLBN
62 / / 03.10.2003
Цитата:
Originally posted by Techtor
Как убить определённый процесс из DLL'ки? Пробовал ТerminateProcess, но ему, насколько я понял, нужен HANDLE процесса, да ещё и с привилегиями, и ExitCode. Из того что я знаю про данную ф-цию - её нежелательно вызывать из Dll'ок. Ничего другого я не смог найти. Вообщем если кто знает - подскажите.



Конечно нежелательно. ТerminateProcess - тупо убивает процесс, все твои очереди просто убьются, у экземплров классов невызовуться деструкторы, ресурсы системы могут тоже неосвободиться. И неважно где ты вызываешь ТerminateProcess - собственно из кода проги, или из DLL.

Но раз нужно вызывать TerminateProcess из DLL, а это, насколько я понимаю, означает, что DLL уже загружена в адресное пространство нужного процесса (того которое надо убить), то в качестве HANDLE передавай ::GetCurrentProcess(). Ну а для убийства собственного процесса и прав никаких ненужно...

Насчёт ExitCode. Он как правило никем не анализируется. Но он может анализироваться родительским процессом для результата последующих действий. Например, среда разработки VC++ при запуске проекта из-под отладчика сначала запускает дочерний процесс - компилятор, если он отработался без ошибок - запустится линковщих, если и сборка прошла без ошибок - запустится собственно сам проект.

Ещё раз замечу, испольовать TerminateProcess - это неправильно!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог