大家好,我用MFC写了一个程序,其中用了CreateProcess函数,在我的电脑上运行正常。之后我把整个工程复制到另一太电脑上,结果就出现了问题。  其中CreateProcess是这样用的,第二个参数中式在cmd中运行的命令:      STARTUPINFO   s1;   
      s1.cb   =   sizeof(STARTUPINFO);   
      GetStartupInfo(&s1);     
      s1.wShowWindow   =   SW_HIDE;   
      s1.dwFlags   =   STARTF_USESHOWWINDOW  |   STARTF_USESTDHANDLES;      if(!CreateProcess(NULL,"nmakeencrypt_DebugInExram.mk",NULL,NULL,TRUE,NULL,NULL,command_path,&s1,&p1))
   { 
      MessageBox("编译失败!");   
      return;      }   在我的电脑上面运行正常,可是换了一台,创建进程就失败了。不知道为什么,又人可以解答吗?

解决方案 »

  1.   

    确定是创建进程失败?也有可能是另外一台电脑没有vc++ Runtime Library
      

  2.   

    MFC是静态链接还是动态链接?
    将依赖库拷贝过去试试看
      

  3.   

    另一台机器是能够解析mk文件的,在控制台里面直接输入命令,也是可以运行的;我把命令写到bat文件中,然后在MFC中用shellexecute调用这个比处理文件又是可以用的,只是用createprocess来调用上面命令时候,就出现了上述问题。所以我就不知道是啥原因。
      

  4.   


    CreateProcess你的指定运行的EXE名称,比如你参数应该这么写:your.exe nmakeencrypt_DebugInExram.mk。Your.exe是你要执行的程序名,全路径。