使用Process.start()从C#表单执行C ++ exe

时间:2010-03-26 20:20:55

标签: c# process.start

我正在尝试创建一个C#表单应用程序,它允许我从一个中央程序中使用我之前的所有C ++程序。

我可以使用Process.Start()打开exes,但是它无法正确编译代码。

示例代码:

Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");

这将打开控制台并像它正在运行一样,但它不像我正常编译出C ++编辑器那样运行。我需要设置一个startinfo变量来表示它是一个C ++程序还是那条线上的东西?

此外,有没有办法使用process.start执行C ++程序,这将允许我通过命令行通过argcargv传递变量?

由于

5 个答案:

答案 0 :(得分:5)

使用Process时只有几个区别。启动时的方式与直接执行程序时的方式相同。两者都可以使用ProcessStartInfo解决。

  1. WorkingDirectory不一样。将此设置为包含可执行文件的路径以获得相同的行为。
  2. UseShellExecute设置为true,因此Windows shell用于执行该过程。
  3. 至于添加命令行参数:您可以通过ProcessStartInfo.Arguments执行此操作。但是,由于它是C ++应用程序,因此不应该有一个。

答案 1 :(得分:1)

到目前为止,只有足够的信息来回答你的最后一个问题。是的,您可以将命令行参数包含为shown here。请查看标题为“===运行EXE的程序(C#)===”

的部分

答案 2 :(得分:1)

添加命令行参数:

Process process = new Process();
process.StartInfo.FileName = "C:\\Documents and Settings\\dan\\Desktop\\test.exe";
process.StartInfo.Arguments = ""; // Put your arguments here
process.Start();

答案 3 :(得分:0)

将程序编译成EXE后,写入的语言无关紧要。

至于程序参数,您需要查看ProcessStartInfo类,以及使用它的Process.Start()的覆盖:Process.Start(ProcessStartInfo)

答案 4 :(得分:0)

我在python中遇到了类似的问题,你期待详细的输出吗?

在我的情况下,输出缓冲区已满,因此执行停止。