草庐IT

SetErrorMode

全部标签

c++ - 对 SetThreadErrorMode()、SetErrorMode()、_set_error_mode() 和 _CrtSetReportMode() 的混淆

我有一个用C++编写并使用VisualStudio2015编译的命令行应用程序。我需要确保此应用程序在自动、无人值守的功能测试期间不会被错误对话框阻止,特别是在断言失败的情况下(标准assert()来自)。我最初认为https://stackoverflow.com/a/6925695/393756中建议的以下调用会做这项工作,但它没有:_set_error_mode(_OUT_TO_STDERR);通过试验,我最终发现以下代码达到了预期的效果,至少在涉及到失败的断言对话框时:SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOGPFAULTERRORB

windows - SetErrorMode 没有效果?

我打电话"SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOGPFAULTERRORBOX|SEM_NOOPENFILEERRORBOX);"在加载DLL之前。然而弹出窗口消息"Thisapplicationhasfailedtostartbecauseblabla.dllwasnotfound...".为什么会这样?我认为这是SetErrorMode应该防止的?谢谢! 最佳答案 对SetErrorMode的调用可能永远不会执行-如果您静态链接到DLL,它将与可执行文件一起加载。您看到的消息是由操作

c - 在 C 中禁用崩溃对话框

我想禁用(在VS2010C程序中)发生GPF时屏幕上弹出的崩溃对话框窗口(您知道xxx.exe停止工作)我在win2008和win7上试过:-SetErrorMode(SetErrorMode(SEM_NOGPFAULTERRORBOX)|SEM_FAILCRITICALERRORS);-try/catch(withSEH,butsomepartsofthecodearen'twrappedin)-SetUnhandledExceptionFilter()没有任何作用...仍然是这个该死的窗口我是不是忘记了什么?唯一有效的是修改寄存器库中的“DontShowUI”键(HKEY_LOCA

python - 如何检查磁盘是否在使用 python 的驱动器中?

假设我想操作软盘驱动器或USB读卡器上的一些文件。如何检查有问题的驱动器是否准备就绪?(即物理插入磁盘。)驱动器盘符存在,因此在这种情况下os.exists()将始终返回True。此外,在这个过程中,我还不知道任何文件名,因此检查给定文件是否存在也不起作用。一些澄清:这里的问题是异常处理。大多数有问题的win32API调用只是在您尝试访问未就绪的驱动器时抛出异常。通常,这会很好地工作-寻找类似可用空间的东西,然后捕获引发的异常并假设这意味着不存在磁盘。然而,即使我捕捉到所有异常,我仍然会收到来自Windows的异常对话框,告诉我软盘/读卡器尚未准备好。所以,我想真正的问题是-如何抑制W

windows - .NET 应用程序 "Exception Processing Message"中的 Vista 异常

背景我在4.0Framework上构建了一个VB.NET应用程序,部分主要功能是内置的AxWMPLib.AxWindowsMediaPlayer,它允许我们将文件路径作为播放器的URL,然后通过内置媒体播放器播放。我的开发平台是Windows7上的VS2010Pro。问题我们最近开始在多个操作系统上测试这个应用程序。该应用程序在多台win7机器上的Win7上运行良好,有些用于开发,有些则没有。问题是当我们在Vista上运行应用程序时。应用程序在打开文件后第一次尝试播放文件时会抛出错误它大部分时间都这样做,但并非总是如此,而且我一直无法建立一个模式,因为有几次它没有抛出错误。此外,它只对