У меня есть кнопка с именем btnTimeIn
, которая вызывает функцию identifyStaff()
:
public: System::Void btnTimeIn_Click(System::Object^ sender, System::EventArgs^ e) {
this->identifyStaff();
}
И эта моя функция identifyStaff()
проверяет, идентифицирован ли персонал / пользователь или нет.И если он не определен, появится окно сообщения с кнопкой ОК, и если была нажата кнопка ok
, функция identifyStaff()
будет вызвана снова.
private: System::Void identifyStaff() {
uint32 flag = 0; // 1:accept or 0:reject
... some code beign skip
flag = 1;
... some code being skip
// accept or if finger print was indentified
if (flag == 1){
// Open confirmation form
}
else
{
if (MessageBox::Show("Staff unidentified. Please rescan again.",
"Timestamp", MessageBoxButtons::YesNo,
MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes) {
this->identifyStaff();
}
else {
// do nothing. Close the MessageBox
}
}
}
Теперь это то, что ясделать, когда я запускаю приложение:
- нажмите кнопку «время в»
- Я поместил незарегистрированный палец в биометрический
- Появится окно сообщения с повторной попыткойкнопку, чтобы повторить попытку.
- Я нажимаю кнопку «Повторить» / «Ок» в окне сообщения
- Снова поместите палец в биометрический (на этот раз зарегистрированный палец)
- Идентификация прошла успешнои форма подтверждения открывается.
- Я закрываю форму подтверждения, после чего происходит сбой приложения.
Я все еще новичок в c ++ и еще не изучал более подробно о рекурсивномфункция.
Итак, почему я получаю эту ошибку / почему происходит сбой моего приложения?
Заранее благодарим вас за то, что поделились своими знаниями.
ОБНОВЛЕНИЕ Я обновляю свой код в посте, чтобы показать про флаг variable.