怎么判断一个进程是否是错误退出

如何判断一个进程是否是异常退出
首先在程序中启动另外一个进程,然后怎么才可以捕获这个进程是否异常终止了勒?

在线等待,各位前辈和高手的指点,谢谢!

------解决方案--------------------
可以通过进程退出码判断
DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE
if (WAIT_OBJECT_0 == dwRet)
{
DWORD dwExitCode = 1;
if (GetExitCodeProcess(hHandle, &dwExitCode))
{
通过进程退出的返回码dwExitCode判断进程是否异常中止。
}
}
------解决方案--------------------
用调试模式启动那个进程就可以知道了。一个简单的判断方法,如果收到EXCEPTION_DEBUG_EVENT, ContinueDebugEvent后很短时间内就收到EXIT_PROCESS_DEBUG_EVENT那就可以认为程序异常退出了。
------解决方案--------------------
用GetExitCodeProcess捕获它的返回码一定能捕获到的,无论是正常退出还是异常退出。
一般情况下正常退出时ExitCode是0,异常退出ExitCode的值会有多种情况。
------解决方案--------------------
怎么不能用调试模式启动?DebugActiveProcess就是用来调试已经启动了的进程的。
------解决方案--------------------
g


调试程序的流程如上!

当关闭我编译的程序A,被调试的程序B,也将一同关闭! 


如何结束我程序A,对程序B的调试,

且不影响原来程序B的运行??
------解决方案--------------------
你先调用createprocess启动要调用的程序,然后调用CloseHandle关闭返回的句柄.

DWORD dwRet = WaitForSingleObject(hHandle,INFINITE);//hHandle为进程句柄HANDLE 
返回了就说明进程结束了.