如何安全结束子进程

johnhowl 2002-05-01 12:02:02
在我的程序中我用CreateProcess调用了子进程,其中能得到该子进程的句柄。但是每当关闭父进程时,子进程并不被结束,如果响应父进程WM_QUIT消息,在响应函数里调用ExitProcess(UINT nExitCode),它并不带进程句柄参数,好像无法结束指定进程,用TerminateProcess(UINT nExitCode, HANDLE hProcess)又极为不安全(无法结束进程调用的DLL).
另外在父进程的DestroyWindow函数里,如下调用
HWND hSpectrum;
hSpectrum=NULL;
hSpectrum=::FindWindow(NULL,"曲线浏览&谱分析");
if(hSpectrum)
::SendMessage(hSpectrum,WM_CLOSE,0,0);
也并不能在父进程关闭时,关闭窗口标题为"曲线浏览&谱分析"的窗口。
不知哪位大虾能指点一二,在下不胜感激
...全文
37 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨星 2002-05-01
  • 打赏
  • 举报
回复
使用通信,最安全的方法就是子进程得到通知自行结束。
yongdu 2002-05-01
  • 打赏
  • 举报
回复
好像只能用跨进程的方式来通知子进程,然后让子进程自已来结束
yu_hl 2002-05-01
  • 打赏
  • 举报
回复
试试发WM_QUIT消息
Asus 2002-05-01
  • 打赏
  • 举报
回复
CloseHandle
afc 2002-05-01
  • 打赏
  • 举报
回复
SendMessage无法发送跨进程的消息,可以使用邮槽或者管道来进行进程之间通信。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧