Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ffmpeg выдает moov atom not found если прервать процесс кодирования - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм обхода в игре "точки" http://www.cyberforum.ru/cpp/thread1657196.html
пишу игру "точки" на с++ в VS form, по клику заполняю два вектора с точками, vector<MyPoint> One; vector<MyPoint> Two; мне нужно найти все области длины одной клетки и проверить если там точка из...
C++ Определение версии операционной системы Помогите пожалуйста! Написать программу которая определяет версию операционной системы http://www.cyberforum.ru/cpp/thread1657032.html
Марафон Безопасности C++
Суть марафона заключается в том, что хотелось бы увидеть как можно больше exe файлов на языке C++, в котором будет одно текстовое поле, в которое надо ввести ваш ключ/пароль и появится ваше кодовое...
C++ Алгоритм обработки фотографий с "Google улицы"
есть ли в открытом доступе алгоритм обработки фотографий с google улицы
C++ Задания по C++ http://www.cyberforum.ru/cpp/thread1655759.html
Ребят помогите сделать задания: 1. Создайте структуру с именем time. Три ее поля, имеющие тип int, будут называться hours, minutes и seconds. Напишите программу которая просит пользователя ввести...
C++ Алгоритм обработки фотографий камеры 360 градусов Ребят есть ли какой код поясняющий принцип обработки этой камерой фотографий и предствлении их в формате 360 градусов или может кто знает на каком языке он может быть написан ( пишу в с++ потому... подробнее

Показать сообщение отдельно
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
08.02.2016, 12:59
Предполагается ОС Windows (со слов vxg).

Обработку простых вариантов (закрытие окна через крестик, обычное выключение ПК, Ctrl-C, ...) можно реализовать через SetConsoleCtrlHandler.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
 
BOOL WINAPI ctrl_handler( DWORD fdwCtrlType ) {
    switch ( fdwCtrlType ) {
        case CTRL_C_EVENT:
        case CTRL_CLOSE_EVENT:
        case CTRL_BREAK_EVENT:
        case CTRL_LOGOFF_EVENT:
        case CTRL_SHUTDOWN_EVENT:
 
            // ... безопасно прекращаем цикл записи ...
 
            return TRUE;
    }
    return FALSE;
}
 
int main() {
    ::SetConsoleCtrlHandler( ctrl_handler, TRUE );
 
    // ... кодируем ...
 
    ::SetConsoleCtrlHandler( ctrl_handler, FALSE );
}


Всё гораздо сложнее обстоит с завершением процесса через диспетчер задач и выключением ПК из розетки.
Событие завершением процесса через диспетчер задач вроде как-то можно отловить нестандартным путём. Об этом надо почитать.
На случай выключения ПК из розетки конечно же лучше иметь ИБП, но этот вариант не рассматривается, поэтому единственный выход который я вижу - периодически закрывать выходной поток данных. Как это лучше сделать тоже надо подумать...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.