Почему SEM_NOGPFAULTERRORBOX также подавляет деление на ноль?

Кажется, что SetErrorMode(SEM_NOGPFAULTERRORBOX), подавляет деление на ноль.

Код для воспроизведения:

SetErrorMode(SetErrorMode(0) | SEM_NOGPFAULTERRORBOX); // Comment out this line and an error dialog will appear.
int a = 5;
printf("%d", 1/(a-5));

Это почему? Из названия я предполагаю, что оно должно подавлять только общую ошибку защиты, которая не имеет ничего общего с делением на ноль.

1

Решение

От Справочная страница MSDN:

Система не отображает диалоговое окно отчетов об ошибках Windows.

Это означает, что когда вы устанавливаете флаг, он подавляет все диалоги ошибок.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]