void CFfDlg::OnButton1()  打个比方我的mfc程序是li.exe
{
   
WinExec("cmd.exe",SW_SHOW);}
但我点击button按钮的时候,cmd是执行了,可是当我关闭或拖动cmd窗口的时候,我发现我的主程序(li.exe)好想死了一样,这个界面不能动了。(任务管理器里面显示:未响应)
其余的代码都是在编写mfc的时候自动生成的,我没有该,请问是什么原因。
请大家试一试,看看。
很简单,就贴加上面的WinExec("cmd.exe",SW_SHOW);
 就可以了。

解决方案 »

  1.   

    This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
    使用CreateProcess才是硬道理.
      

  2.   

    楼主你这样可以用的,
    我试了一下,没有你说的问题
    楼主重新建个mfc程序再试试
      

  3.   

    WinExec是为了兼容16位程序而设计的,但32位程序仍可以用。WinExec函数会等到被加载的程序执行GetMessage或者超过规定时间才会返回,但单单加载cmd.exe应该是很快就会GetMessage,所以不会有父进程停止响应的情况。LZ的程序应该是其它地方存在问题。
      

  4.   

    同意楼上的观点,这个问题应该不是出自WinExec的问题,楼主不妨检查其他方面的问题,或者调试下,看看具体情况。。