我正在尝试创建一个C#表单应用程序,它允许我从一个中央程序中使用我之前的所有C ++程序。
我可以使用Process.Start()
打开exes,但是它无法正确编译代码。
示例代码:
Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");
这将打开控制台并像它正在运行一样,但它不像我正常编译出C ++编辑器那样运行。我需要设置一个startinfo
变量来表示它是一个C ++程序还是那条线上的东西?
此外,有没有办法使用process.start
执行C ++程序,这将允许我通过命令行通过argc
和argv
传递变量?
由于
答案 0 :(得分:5)
使用Process时只有几个区别。启动时的方式与直接执行程序时的方式相同。两者都可以使用ProcessStartInfo解决。
至于添加命令行参数:您可以通过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中遇到了类似的问题,你期待详细的输出吗?
在我的情况下,输出缓冲区已满,因此执行停止。