如何在C ++程序中执行C ++控制台程序?

时间:2011-07-19 06:09:17

标签: visual-c++

我已经尝试过system()和spawnl,但奇怪的是,我试图在我的C ++程序中执行的.exe程序没有按原样运行。

这是我的代码:

    #include <stdio.h> 
    #include <process.h> 

    int main(void)
    {
    puts("Executing simpleTest.exe...."); 
    spawnl( P_WAIT, "C:/simpleTest.exe",
    "C:/simpleTest.exe", "Using spawnl", "Arg1", "Arg2", NULL );
    system("pause");  
    return 0;
    }

simpleTest.exe实际上也是一个C ++控制台应用程序,我想在名为Invoke.exe的C ++控制台应用程序中调用它....我想知道这是我的问题所在。 如果我通过双击它来执行simpleTest.exe,它工作正常....但如果我用上面的代码执行它,它退出,因为它遇到一个错误... 我想知道我哪里做错了?上面的代码旁边还有其他建议吗? 哦,是的,我正在使用Microsoft Visual Studio 2008 ...... 任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:0)

MSVC(实际上是Windows)执行进程的方法是通过CreateProcess函数。我从未使用过spawnl,所以我不知道它是如何工作的。

答案 1 :(得分:0)

使用本机C运行时进程创建函数最终只会调用CreateProcess。他们还可能创建一个控制台窗口,这可能是不可取的。 因此,建议使用CreateProcessShellExecute系列函数。