没有R6010无法关闭C ++控制台应用程序?

时间:2016-08-19 02:50:51

标签: c++ delay sleep exit

我决定在使用Python几年后接受C ++的投入。现在,我正在尝试制作一个程序,每60分钟闪烁一次键盘上的LED,以提醒我使用键盘SDK进行拉伸。闪烁和计时工作,但问题是当你不想要或打开它时关闭程序。

我可以在第一次调用alarm()函数之前退出程序。在我调用alarm函数后,我得到Windows pop说我可以使用代码R6010中止,忽略或重试。

我目前已经设置了尝试捕获Ctrl-C事件并结束while循环,但无论如何都以相同的错误结束。

#include "stdafx.h"
#include <iostream>
#include "Windows.h"
#include "SDKDLL.h"
#include <string>
#include <chrono>
#include <thread>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctime>
using namespace std;
using namespace std::this_thread; 
using namespace std::chrono;
BYTE r = 0;
BYTE g = 0;
BYTE b = 0;
bool exiter = false;//Exit variable
void my_handler(int s){// Tells me when CTRL C was pressed
    printf("Caught signal %d\n", s);
    ::exiter = true;

}
void alarm(){
    //Basically turns on and off LEDs 5 times
    for (int x = 1; x < 5; x++){

        Sleep(500);
        r = 255;
        g = 255;
        b = 255;
        SetFullLedColor(r, g, b);
        Sleep(500);
        r = 0;
        g = 0;
        b = 0;
        SetFullLedColor(r, g, b);
    }

}


int _tmain(int argc, _TCHAR* argv[])
{

    signal(SIGINT, my_handler);//Trying to find a way for the program to exit nicely, this way uses CTRL C
    SetControlDevice(DEV_MKeys_M_White);

    while (::exiter == false){
        sleep_until(system_clock::now() + seconds(4));//waits X seconds to do the sequence again
        EnableLedControl(true);//Allows for control of LED
        alarm();//Turns off and on the LEDS
        EnableLedControl(false);//Disables the LEDs
    } 
    return 0;
}

我一直在研究这个错误几个小时没有解决方案。任何帮助将不胜感激!

0 个答案:

没有答案