c/c++语言开发共享使用windows c / c ++代码中的特定参数执行外部程序

我想从Program2调用Program1,其参数完全相同,我称之为Program2。 在Linux中,我可以这样做:

int main(char argc, char* argv[]){ execv("./Program1", argv); } 

在Windows中,我尝试了CreateProcess

但正如第一篇文章所说,存在潜在问题:“argv [0]不包含预期的模块名称”。 我确实想将正确的argv [0]发送给Program1。 我该怎么办?

    argv [0]是程序本身的名称。

    你应该做 :

     int main(char argc, char **argv) { char* argvForProgram1[] = { "./Program1", 0 } execv(argvForProgram1[0], argvForProgram1); } 

    或保留以前的args:

     int main(char argc, char **argv) { char** argvForProgram1 = argv; argvForProgram1[0] = "./Program1"; execv(argvForProgram1[0], argvForProgram1); } 

    使用execve也更好,因为你保持环境:

     int main(char argc, char **argv, char **envp) { char** argvForProgram1 = argv; argvForProgram1[0] = "./Program1"; execve(argvForProgram1[0], argvForProgram1, envp); } 

      以上就是c/c++开发分享使用windows c / c ++代码中的特定参数执行外部程序相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522459.html

      (0)
      上一篇 2020年12月10日
      下一篇 2020年12月10日

      精彩推荐