我的理解是,当您在 Windows XP 中通过任务管理器终止 C++ 应用程序时,该应用程序仍然“干净”地被破坏 - 即调用堆栈将展开并且所有相关的对象析构函数都将被调用。不确定我的理解是否有误。
是否可以在不展开堆栈的情况下立即终止这样的应用程序?
例如,应用程序可以使用 RAII 模式,当对象被破坏时,这些模式将破坏或释放资源。如果通过任务管理器的传统“终止进程”是正常的,那么提供一种立即终止应用程序的方法将允许我测试不正常的关机(例如断电)。
编辑:
澄清一下,我正在寻找一个允许我这样做的现有实用程序或程序。我应该能够在我没有源代码的程序上使用该解决方案,这意味着编程解决方案实际上是不可接受的。
编辑:
只是为了提供更多上下文,有时我必须使用非常侵入性的第 3 方服务(例如,每隔一小时就唠叨我重新启动)。因为我知道我不需要重新启动,所以我想终止进程/服务,这样它就不会再唠叨我了。不幸的是,一些第 3 方开发人员“聪明”到足以阻止我这样做,当我通过任务管理器终止进程时,系统将立即重新启动(我猜是使用 RAII 来实现这一点)。