我已经尝试过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 ...... 任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
MSVC(实际上是Windows)执行进程的方法是通过CreateProcess函数。我从未使用过spawnl,所以我不知道它是如何工作的。
答案 1 :(得分:0)
使用本机C运行时进程创建函数最终只会调用CreateProcess
。他们还可能创建一个控制台窗口,这可能是不可取的。
因此,建议使用CreateProcess
或ShellExecute
系列函数。