标签: c++ winapi exception-handling divide-by-zero
似乎SetErrorMode(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));
为什么?从名称我假设它应该只抑制一般保护错误,这与除零无关。
答案 0 :(得分:3)
来自MSDN reference page:
系统不显示Windows错误报告对话框。
这意味着当您设置标志时,它会禁止所有错误对话框。