C ++ / CLI: ошибка программирования SYSTEMTIME - PullRequest
0 голосов
/ 12 июня 2011

Я пытаюсь сделать небольшую систему оповещения, чтобы сделать что-то (ИДК, что я хочу еще), когда наступит определенное время.Тем не менее, я получаю все эти ошибки, когда я запускаю этот код в WinForm после некоторых кратких изменений.Но этот код (без изменений) работал в моем пустом проекте!У меня есть фрагмент ниже:

int checktime ()
{
    SYSTEMTIME time;
    GetLocalTime( &time );
    int hour = time.wHour;
    int minute = time.wMinute;
    if (hour > 12) hour -= 12;
    if hour == 8
    {
        this->progressBar1->PerformStep();
    }
}

Как всегда, я буду признателен за любую помощь или предложения.Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 июня 2011
if hour == 8

Это недопустимо в C ++ или C ++ / CLI.Скобки в выражении if не являются обязательными.

И почему вы не используете .NET System::DateTime::Now?Эта целая функция может быть:

int checktime ()
{
   int hour = System::DateTime::Now.Hour;
   if (hour == 8 || hour == 20)
    this->progressBar1->PerformStep();
}
0 голосов
/ 12 июня 2011

Используйте объект Таймер для отслеживания времени прохождения.

В конструкторе перетащите таймер с панели инструментов на форму или создайте его в коде. Вы можете установить длительность (используя элемент interval), и с каждым «тиком» система вызывает событие, и вы можете выполнить действие.

Это хорошо, потому что это похоже на другой поток, отслеживающий в фоновом режиме.

...