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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Валерий_
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 78
Завершенные тесты: 1
#1

Реакция на возвращаемое значение - C++

24.10.2015, 14:32. Просмотров 212. Ответов 14
Метки нет (Все метки)

Здравствуйте,

Есть программа которая выполняеться и после всех действий удаляет себя.
Но появилась проблема, если закрыть программу до
выполнения всех её функций она остаёться.
Вопрос: как заставить программу реагировать на код
завершения отличный от 0(завершена корректно)?

Заранее Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2015, 14:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реакция на возвращаемое значение (C++):

Возвращаемое значение - C++
Как сделать так, что бы в зависимости от подаваемых аргументов, функция возвращала разные значения? Пробовал через шаблоны, но не...

Возвращаемое значение в class - C++
Здравствуйте можно ли как-то возвраить значение основной программе, если операцию я проводил в в class?

Возвращаемое значение (класс) - C++
class shtraf { public: struct sh { int vel; char number; sh *next; };

Возвращаемое значение делигата - C++
Сделал делигат, который принимает до 4-х аргументов функции, которая принимает любой из типой для возвращаемого значения. Вот...

Классы. Возвращаемое значение - C++
Всем привет:) Помогите исправить ошибки template <class T> class Vector { private: T *m_data; public: ...

Возвращаемое ссылочное значение - C++
int a = 1; int& func(){return a;} void main() { int b = func(); b+=111; cout << b << " " << a; system("pause"); ...

14
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
24.10.2015, 16:00 #2
Программа сама свой код формирует через return. Или что ты имеешь в виду? Какая ОС?
0
Валерий_
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 78
Завершенные тесты: 1
24.10.2015, 22:47  [ТС] #3
ОС Win10
Да, кажеться, я имею в виду return.
Подскажете способ из личной практики?
0
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
24.10.2015, 22:49 #4
Ну если это windows-приложение, то оно получает сообщение при закрытии, когда на кнопку закрытия нажимаешь.
1
Валерий_
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 78
Завершенные тесты: 1
24.10.2015, 23:00  [ТС] #5
И как на С++ словить нажатие кнопки выхода, подскажите, если не сложно.
0
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
24.10.2015, 23:07 #6
У тебя графическое приложение или консольное?
0
Валерий_
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 78
Завершенные тесты: 1
24.10.2015, 23:12  [ТС] #7
Консольное
0
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
24.10.2015, 23:18 #8
Тогда, наверное, никак. Делай оконное.
1
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
25.10.2015, 10:27 #9
"Крестик" в консольном приложении ловится через
установку своего обработчика, см. функцию SetConsoleCtrlHandler.
1
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
25.10.2015, 10:54 #10
Убежденный, а как её согласовать с работой консольного приложения?
0
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
25.10.2015, 11:17 #11
Поясни, что имеется в виду.
0
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
25.10.2015, 11:38 #12
Ну приложение работает, что-то выполняет, и тут нажали кнопку - как основной алгоритм должен об этом узнать и корректно завершиться прежде, чем ОС его завершит принудительно?
0
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
25.10.2015, 11:45 #13
Надо из обработчика подать какой-то сигнал (например, event) в нужный поток,
что приложение закрывается. На выполнение всех очистительных работ у
приложения будет примерно 5 секунд, потом его прибъет система.
0
nmcf
5547 / 4857 / 1647
Регистрация: 14.04.2014
Сообщений: 19,725
25.10.2015, 12:17 #14
5 секунд - это к выключению и завершению сеанса относится? А если нажато Ctrl-C, например, и Handler возвратит true, приложение останется работать, если само не завершится?
0
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
25.10.2015, 13:55 #15
Поведение программы и реакция системы на возврат TRUE/FALSE из хэндлера
немного различаются на разных версиях Windows, сейчас точно уже не скажу.
Но возврат из хэндлера можно задержать. Например, что-то типа такого:
C++
1
2
3
4
5
6
7
8
9
BOOL _stdcall ConsoleHandler(DWORD Code)
{
    // ...
 
    SetEvent(g_hBeginQuit); // Сообщаем, что приложение завершается.
    WaitForSingleEvent(g_hEndQuit, INFINITE); // Ждем, пока операция
        // не будет обработана.
    return TRUE; // или FALSE, в зависимости от условий; суть от этого не меняется.
}
1
25.10.2015, 13:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2015, 13:55
Привет! Вот еще темы с ответами:

Возвращаемое значение из класса - C++
#include <iostream> using namespace std; class Integer { public: int value; Integer(int i) { value = i; } const...

Возвращаемое значение функции - C++
void tokenize(string str_translate){ char char_translate; strcpy(char_translate, str_translate.c_str()); // string to char* ...

Template возвращаемое значение - C++
функция принимает различные типы и делает с ними операцию. И не известно какой тип она должна вернуть. например если пришел int и float,...

Возвращаемое значение cos() - C++
Всем доброго времени суток. не могу понять почему cos() возвращает такие значения... cout<<"F "<<cos(90*M_PI/180.0)<<endl; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru