【问题标题】:What does SEM_FAILCRITICALERRORS prevent?SEM_FAILCRITICALERRORS 可以防止什么?
【发布时间】:2013-07-25 09:07:31
【问题描述】:

来自MSDN

SEM_FAILCRITICALERRORS - 系统不显示 严重错误处理程序消息框。相反,系统会发送 调用进程出错。

但是,SetErrorMode(SEM_NOGPFAULTERRORBOX) 已经抑制了所有错误对话框。

那么 SEM_FAILCRITICALERRORS 究竟能防止什么?

从文档中看不是很清楚,当通过设置和取消设置SEM_FAILCRITICALERRORS 进行测试时,它对访问冲突、被零除、未处理的 C++ 异常或我能想到的任何其他事情都没有影响。

【问题讨论】:

  • 如果您尝试访问没有媒体的磁盘驱动器上的文件或目录(例如,空的软盘驱动器),您将收到这些错误之一。不确定是什么其他条件产生的。
  • 这是臭名昭著的 MS-Dos“中止、重试、失败”错误提示的扩展。微软认为的“严重系统错误”的确切内容没有记录。它只记录了您应该使用 SEM_FAILCRITICALERRORS 将其关闭,这样这些神秘的消息框就不会弹出。您列出的错误不是系统错误,而是程序错误。改用 SEM_NOGPFAULTERRORBOX。

标签: c++ winapi exception-handling


【解决方案1】:

SEM_NOGPFAULTERRORBOX 标志防止的系统错误包括:

  • 加载 DLL 时出现动态链接错误(例如找不到入口点)。

  • 应用程序初始化错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-09-11
    • 2014-04-02
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    相关资源
    最近更新 更多