用CreateProcess创建了一个子进程,不显示命令行窗口,想中途终止,发现用TerminateProcess然后WaitForSingleObject,子进程能够正确退出,但是得到的结果不对。
命令行窗口中单独运行子进程(参数相同),可以用q退出,可以ctrl+c退出。
TerminateProcess和ctrl+c的效果不一样的啊,子进程没有消息循环,命令行程序。
请教应该如何正确的结束子进程。
命令行窗口中单独运行子进程(参数相同),可以用q退出,可以ctrl+c退出。
TerminateProcess和ctrl+c的效果不一样的啊,子进程没有消息循环,命令行程序。
请教应该如何正确的结束子进程。
解决方案 »
- MFC中BEGIN_MESSAGE_MAP中的ON_COMMAND是什么?
- 请问这句代码有什么作用 typedef IDispEventImpl<IDC_EXPLORER2,Cbrowser_ie> WebBrowser3;
- 如何在XP和2000两个系统中启用alt+del+ctrl锁屏功能
- vc对话框的一个问题
- 新手提问,一个进程分配的是4GB的内存空间,如果内存不足4GB的话进程怎么处理
- 高手帮忙
- 关于文件操作的问题
- 哪位用ATL写过服务?!——建立工程的步骤?!
- 请教高手!如何判断一个目录中是否存在某一个文件?
- VS2005的MFC Class Wizard
- 高分求windows下音频采集相关资源和代码!!!
- 如何用VC6.0通过ODBC访问SQL Server 2000?
在MSDN上面查了一下CreateProcess,
The CreateProcess function is used to run a new program. In addition to creating a process, CreateProcess also creates a thread object. The thread is created with an initial stack whose size is described in the image header of the specified program’s executable file. The thread begins execution at the image’s entry point.
不是多线程,是多进程,开启一个新的程序。to chenqisuo:
CreateProcess和TerminateProcess的子进程句柄是一样的。
等待正常结束。
如果要强制结束,SendMessage(WM_CLOSE..........TerminateProcess函数是个异步运行的函数,也就是说当函数返回时,目标进程不一定已经结束了,它可能会在将来的某个时候结束。