我正在编写一个不使用.NET的MFC应用程序(在项目设置中将CLR支持设置为 No Common Language Runtime support )。但是,当我在Release版本中退出应用程序时,我收到了SEHException
。调试版本给了我一个断言错误,但错误窗口在弹出后大约半秒消失(我之前没有遇到的事情)所以我没有机会看到它。
所以主要问题是:没有任何托管代码的应用程序如何抛出Interop.SEHException?
答案 0 :(得分:4)
没有托管代码的应用程序可能会抛出SEHException,因为结构化异常处理(SEH)是Win32的一部分,并且早于CLR。这是January 1997 giving a crash course (hah!) on Win32 SEH的链接。
答案 1 :(得分:2)
PostQuitMessage()
的调用)。消失的框是由于在抛出异常后很快就调用exit(0)
并且程序终止。