powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как выполнить функцию при закрытии приложения на С++
13 сообщений из 13, страница 1 из 1
Как выполнить функцию при закрытии приложения на С++
    #38498945
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проект в VS2010 на С++
Простое консольное приложение

Как можно назначить какую нить функцию на тот случай когда я сам закрываю это приложение крестиком в углу консольного окна ?
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38498955
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SetConsoleCtrlHandler()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499024
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromПростое консольное приложение
Как можно назначить какую нить функцию на тот случай когда я сам закрываю это приложение крестиком в углу консольного окна ?

Как бы консольное приложение не подразумевает вообще такую возможность.
Я к тому, что решение Дмитрия непереносимо.

Есть ещё atexit()
http://www.cplusplus.com/reference/cstdlib/atexit/

но он может запросто в этом случае не вызываться (можно проверить).
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499040
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

А можно пример использования для мой ситуации, что то не могу найти нормальный пример в гугл для SetConsoleCtrlHandler()
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromчто то не могу найти нормальный пример в гугл для SetConsoleCtrlHandler()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049(v=vs.85).aspx
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499226
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv ,

atexit()
Вроде работает, но я вызвал всплывающее окно MessageBoxA() при закрытии консоли, но через несколько секунд консоль и всплывающее окно закрываются не дождавшись пока я нажму ОК
Я к тому что atexit() может не дождаться выполнения функции которую я буду вызвать при завершении ? у atexit() какой то лимит по времени ?

И еще если консоль зависнет и я завершу работу аварийно или вообще через диспетчер задач убью процесс, эта функция будет вызываться ?

Dimitry Sibiryakov
Как я понял идет какое то перечисление возможных событий и выполнение определенных функций для них, а где почитать что значат каждое событие ?
И вопрос если консоль закрывается аварийно или через диспетчер задач есть ли какое то событие которое может обработать эту ситуацию ?
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499248
tromMasterZiv ,

atexit()
Вроде работает, но я вызвал всплывающее окно MessageBoxA() при закрытии консоли, но через несколько секунд консоль и всплывающее окно закрываются не дождавшись пока я нажму ОК
Я к тому что atexit() может не дождаться выполнения функции которую я буду вызвать при завершении ? у atexit() какой то лимит по времени ?

И еще если консоль зависнет и я завершу работу аварийно или вообще через диспетчер задач убью процесс, эта функция будет вызываться ?

Dimitry Sibiryakov
Как я понял идет какое то перечисление возможных событий и выполнение определенных функций для них, а где почитать что значат каждое событие ?
И вопрос если консоль закрывается аварийно или через диспетчер задач есть ли какое то событие которое может обработать эту ситуацию ?
MessageBoxA() - неблокирующая/асинхронная функция?
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499251
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromа где почитать что значат каждое событие ?
Ты что, самостоятельно ходить по ссылкам совсем не умеешь?..
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683242(v=vs.85).aspx
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499367
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromИ вопрос если консоль закрывается аварийно или через диспетчер задач есть ли какое то событие которое может обработать эту ситуацию ?
это конец, подумал Штирлиц, где же пистолет.

kill -9/terminateprocess не дают никаких шансов
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499414
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromИ еще если консоль зависнет и я завершу работу аварийно или вообще через диспетчер задач убью процесс, эта функция будет вызываться ?

И при отключении электропитания - тоже будет вызываться!
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38499520
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_ktromИ еще если консоль зависнет и я завершу работу аварийно или вообще через диспетчер задач убью процесс, эта функция будет вызываться ?

И при отключении электропитания - тоже будет вызываться!


это конечно же сарказм, шутка.
гарантий нет. ни в c, ни в каком то другом языке программирования.
Её вообще по жизни нет.
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38500729
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Около 17 лет назад я в своём блоге писал о неубиваемой программе. Правда, не консольной, а оконной. Это было под новую крутую операционку Win 95. Также портировано под OS/2. Фишка в том, что система не делает сразу kill, а перед убийством программы вежливо посылает WM_QUIT. Тут моя программа создаёт дубликат процесса с общими страницами данных, а сама завершается. Перехват завершения программы работал надёжно.
...
Рейтинг: 0 / 0
Как выполнить функцию при закрытии приложения на С++
    #38500819
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, решил мониторить запущенность приложения внешней прогой так надедежней
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как выполнить функцию при закрытии приложения на С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]