菜问题,请各位大哥帮忙,为何子进程结束不了。

hcling03 2004-03-03 03:14:28
创建一个新的cmd进程读写了管道,就结束不掉了

invoke CreateProcess,NULL,addr szCmd,NULL,NULL,TRUE,NULL,NULL,NULL,\
addr @stSI,addr @stPI ;创建cmd进程
.if eax==NULL
invoke _ConsolePrint,addr szCreateErr
jmp @F
.else
invoke WriteFile,@PipeWrite1,addr szCommand,sizeof szCommand,\
addr @bytesRead,NULL ;把命令写入管道,让cmd进程执行
invoke CloseHandle,@PipeWrite
.while TRUE
.break .if (dwOption & F_ABORT)
invoke RtlZeroMemory,addr @buffer,1024
invoke ReadFile,@PipeRead,addr @buffer,1023,\
addr @bytesRead,NULL ;读管道输出
.if eax==NULL
.break
.endif
invoke _ConsolePrint,addr @buffer ;打印输出
.endw
.endif
invoke CloseHandle,@PipeWrite1
invoke CloseHandle,@PipeRead1
invoke CloseHandle,@PipeRead
invoke CloseHandle,@stPI.hThread
invoke TerminateProcess,@stPI.hProcess,-1 ;>>>>>>>>>>错误所在>>>>>>>>>>


程序执行以后父进程(console)输入的命令成功执行,并且返回了执行结果,但是在最后结束子进程时没有成功,用于输入命令的父进程阻塞,不知道如何解决啊。原因是什么啊????这个问题困扰了我一个星期了,找极度苦恼中。。。。

...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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