winapi – 为什么Windows在WM_CLOSE期间吞掉异常
在试图找出为什么我正在处理的应用程序不会关闭时,我意识到它在WM_CLOSE处理程序中抛出异常。但是,除了应用程序崩溃(因为应该),异常被默认忽略。
为了确保没有其他的事情,我在Visual Studio中创建了一个新的C Win32应用程序,并添加了: case WM_CLOSE: (*(int*)NULL) = 0; break; 同样的事情:没有崩溃,只是调试日志中的第一次机会异常。如果我将相同的代码添加到WM_COMMAND处理程序,则会按预期的方式崩溃。 所以我很好奇:Windows认为其抛出的异常应该被吞噬的WM_CLOSE有什么特别之处? (BTW:这是在Windows 7 x64,运行x86程序)
这个例外是WinPix上的WindowProc吞噬是预期的行为。 (
See docs.)
另请参阅Paul Betts’博客更好的解释,尤其是他的笔记
似乎对这个问题有所了解。 Random ASCII also对所有这种内核模式 – 吞咽行为有一些很好的解释:
并作为奖金:见here on SO on the why。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2003 – 是否可以在Windows Server 2003上运
- 如何使用MinGW创建微小的PE(Win32)可执行文件
- Win10 下不能正常使用Multilink解决办法
- win10 桌面设置为远程桌面
- Jupyter从Windows的Cmd线
- windows-server-2008 – 从NSD区域传输Windows Server DNS
- windows-server-2003 – 需要一种在用户登录之前在Windows启
- windows-server-2003 – 是否有理由在Windows Server上升级
- win10家庭版怎么开启Administrator超级管理员帐户
- 将Windows 7屏幕键盘整合到WPF应用程序中