/ / Не може да се добавят сигнали за увеличаване :: asio :: signal_set под Windows - c + +, прозорци, тласък, сигнали, boost-asio

Не може да се добавят сигнали за увеличаване на :: asio :: signal_set под Windows - c + +, прозорци, тласък, сигнали, boost-asio

Опитвам се да чакам сигнали с boost :: asio под Windows, но не мога да добавя сигнали.Това е, което аз се опитах:

boost::asio::io_service ioService;
boost::asio::signal_set quitSignals(ioService);
quitSignals.add(CTRL_C_EVENT);
quitSignals.add(CTRL_BREAK_EVENT);
quitSignals.add(CTRL_CLOSE_EVENT);
quitSignals.add(CTRL_LOGOFF_EVENT);
quitSignals.add(CTRL_SHUTDOWN_EVENT);

Това дава твърдение за отстраняване на грешки за първия("Невалиден сигнал или грешка", 0) и изключване на невалиден аргумент за останалите. Използвам ли грешни номера на сигнала? Константите, които използвам, са дефинирани в wincon.h както следва:

#define CTRL_C_EVENT        0
#define CTRL_BREAK_EVENT    1
#define CTRL_CLOSE_EVENT    2
// 3 is reserved!
// 4 is reserved!
#define CTRL_LOGOFF_EVENT   5
#define CTRL_SHUTDOWN_EVENT 6

Отговори:

1 за отговор № 1

Използвах наистина грешните константи. Константите са същите като в Linux (SIGINT, SIGTERM, ...), определени в signal.h.

Използвах SetConsoleCtrlHandler API преди (който използва CTRL_C_EVENT, ...). Това ме обърка.