Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何运行C++。来自C#的exe文件? 我将从C++应用开始,解释我的确切要求。我有一个C++应用程序,它从控制台(键盘)输入一个输入(一个小的命令叫“run”),在项目中使用任何参数(C++应用程序使用GETCHARE())。问题是,我可以使用Syp.CytCys.Pro从C语言运行exe文件,但是我想在C++程序中输入“run”命令来执行C++应用程序。有可能这样做吗?_.net_C# 4.0 - Fatal编程技术网

.net 如何运行C++。来自C#的exe文件? 我将从C++应用开始,解释我的确切要求。我有一个C++应用程序,它从控制台(键盘)输入一个输入(一个小的命令叫“run”),在项目中使用任何参数(C++应用程序使用GETCHARE())。问题是,我可以使用Syp.CytCys.Pro从C语言运行exe文件,但是我想在C++程序中输入“run”命令来执行C++应用程序。有可能这样做吗?

.net 如何运行C++。来自C#的exe文件? 我将从C++应用开始,解释我的确切要求。我有一个C++应用程序,它从控制台(键盘)输入一个输入(一个小的命令叫“run”),在项目中使用任何参数(C++应用程序使用GETCHARE())。问题是,我可以使用Syp.CytCys.Pro从C语言运行exe文件,但是我想在C++程序中输入“run”命令来执行C++应用程序。有可能这样做吗?,.net,c#-4.0,.net,C# 4.0,是的。您需要重定向生成的进程的输入流,以便可以直接写入: // Use ProcessStartInfo class ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = false; startInfo.UseShellExecute = false; startInfo.FileName = "run.exe"; startInfo.Win

是的。您需要重定向生成的进程的输入流,以便可以直接写入:

    // Use ProcessStartInfo class
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.CreateNoWindow = false;
    startInfo.UseShellExecute = false;
    startInfo.FileName = "run.exe";
    startInfo.WindowStyle = ProcessWindowStyle.Hidden;
    startInfo.Arguments = "-f j ";

    try
    {
        using (Process exeProcess = Process.Start(startInfo))
        {
        exeProcess.WaitForExit();
        }
    }
    catch
    {
        // Log error.
    }
var proc = new Process();

proc.StartInfo.FileName = "program.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;

proc.Start();
var sw = proc.StandardInput;
现在,这将写入进程的标准输入,就像您使用键盘键入文本一样:

sw.WriteLine("run something");
最后,当你写完后,别忘了整理一下:

sw.Close();
proc.WaitForExit();
proc.Close();

系统.诊断.过程
有什么问题?这是通常的方法。您可以将C程序的控制台输出重定向到接受
run
的程序。但为什么这么复杂呢?你想实现什么?嗨,乔恩。。它可以工作,但问题是,当我使用sw.WriteLine(“运行某物”);它在进程控制台中打印垃圾字符。。因为是打印垃圾字符,所以我错了output@Bhuvan:我们无法调试此代码,尤其是在没有看到代码的情况下。我可以知道,您指的是哪种代码吗?因为我可以和你分享CPP代码,他们在他们的应用程序中没有使用任何编码,因为我猜嗨,JON,是的,这终于起作用了…我很早就关闭了流,这给我带来了问题sw.Close();。。我意识到并解决了我的问题。。但我还有一个疑问,当我使用consoleWindow.RedirectStandardOutput=true时;我能够部分地将输出写入文件。。但是我没能将完整的输出写入文件,我没有得到我正在做的事情。。。还有一件事,我可以在控制台中打印输出并同时将相同的输出写入文件吗