Хотя вы не опубликовали свой полный код, похоже, что вы объявляете переменные current_time
, st
и it
в неправильном / запрещенном месте (после case WM_INITDIALOG:
). Вы должны либо объявить эти переменные перед оператором switch
, либо добавить { ... }
фигурные скобки внутри , которые case
.
Например, код, подобный этому неправильно сформирован:
switch (a) {
case 1:
int b = a/2; // illegal here!
//...
break;
default:
break;
}
, но это будет работать:
int b; // Note: This declaration MAY need to be at the beginning of the enclosing function!
switch (a) {
case 1:
b = a/2; // works
//...
break;
default:
break;
}
, и так будет:
switch (a) {
case 1: { // These "{ ... }" create a new scope
int b = a/2; // works
//...
break;
}
default:
break;
}
Причина этого заключается в том, что в Ваш код, объявление / определение вышеупомянутых переменных пропускается в случаях, отличных от WM_INITDIALOG
. См. Это переполнение стека Q / A для дальнейшего обсуждения: Почему переменные не могут быть объявлены в операторе switch?