c++ - 如何使用 HINSTANCE 终止应用程序

标签 c++ handle terminate hinstance

我正在使用 ShellExecute 从 C++ 生成一个应用程序,所以我有应用程序的 HINSTANCE。

现在如何使用 HINSTANCE 关闭它?我可以使用 WaitForSingleObject() 来等待应用程序完成吗?

最佳答案

无法正常关闭进程。使用 TerminateProcess 是一种突然的非优雅方式,但这将阻止进程运行自己的清理代码,并可能使内容处于“不确定状态”,请参阅 Quick overview of how processes exit on Windows XP .

很长一段时间以来,关于“终止进程”的常识是向进程最顶层的无主窗口发送 WM_CLOSE,期望应用程序通过优雅地退出来响应。参见 How To Terminate an Application "Cleanly" in Win32 ,以及关于找到正确窗口的相关主题的强制阅读:There can be more than one (or zero): Converting a process to a window

回答你还应该阅读 What can I do with the HINSTANCE returned by the ShellExecute function?了解为什么您拥有的 HINSTANCE 不值得信赖,更不用说没用了......

关于c++ - 如何使用 HINSTANCE 终止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6064415/

相关文章:

c++ - 将另一个命令行程序的输出加载到我的

c++ - 使用 vector 的递归排列

python 多处理: why is process defunct after terminate?

c# - 如果程序意外关闭,IDisposable 对象是否会被处理掉?

python - 有没有办法杀死一个线程?

C++0x 右值引用模板参数推导

c++ - 将派生类对象存储在基类变量中

c++ - 如何正确传递窗口句柄?

c++ - 我可以使用 %p 说明符输出 Windows 句柄吗?

jquery - 从blur()调用实际函数