首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在什么情况下,程序会以0x40010004代码退出?

在什么情况下,程序会以0x40010004代码退出?
EN

Stack Overflow用户
提问于 2016-05-07 02:16:42
回答 1查看 26.9K关注 0票数 10

我的程序是为Windows平台设计的。

有时它会因错误而终止。我不能在安装它的每台计算机上调试它,所以我添加了矢量化的异常处理程序,它将一些关于异常的信息发送到服务器。有一些0xC0000005异常;我修复了它,但程序仍然终止(我无法在我的PC上重现错误)。

我写了另一个程序,它等待主进程句柄,并在主进程终止时发送带有进程退出代码的报告。我查看了退出代码,其中大部分是0x40010004 (DBG_TERMINATE_PROCESS)。我知道当调试器附加到应用程序并终止它时,会出现此退出代码;但我确信没有调试器。

所以..。在哪些其他情况下,可以使用DBG_TERMINATE_PROCESS退出代码终止进程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-28 02:48:00

从理论上讲,它可以是任何东西,因为TerminateProcess有一个退出代码参数。

实际上,这很可能是由于系统关机造成的。当Windows关闭时,它会尝试优雅地退出正在运行的程序(更多关于here的信息。如果他们拒绝退出,他们可能会被系统终止,退出代码为0x40010004。例如,如果您有一个显示模式对话框的图形用户界面程序,然后您尝试关闭系统,系统将提示您一条消息"xy.exe正在阻止关机“。如果你点击“强制关机”,进程将被终止,退出代码为0x40010004

如果你试图重现这段代码,请注意等待你应用程序的进程HANDLE的程序可能会在你的主应用程序之前终止。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37078953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档