Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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
在C#应用程序中使用命令行程序 我编写了一个C++程序(从命令行执行),效果很好。现在我需要将它用于我的C#应用程序。也就是说,我希望我的C++程序的输出在调用时在我的C语言应用程序中使用。_C#_C++_Command Line Interface - Fatal编程技术网

在C#应用程序中使用命令行程序 我编写了一个C++程序(从命令行执行),效果很好。现在我需要将它用于我的C#应用程序。也就是说,我希望我的C++程序的输出在调用时在我的C语言应用程序中使用。

在C#应用程序中使用命令行程序 我编写了一个C++程序(从命令行执行),效果很好。现在我需要将它用于我的C#应用程序。也就是说,我希望我的C++程序的输出在调用时在我的C语言应用程序中使用。,c#,c++,command-line-interface,C#,C++,Command Line Interface,可能吗?如果是,怎么做 >任何链接或帮助都会被理解。< P> >制作C++代码DLL,并使用pPoNoCK调用C++代码中的C++函数。< /P> 阅读本文: 另一种方法是使用.Net中的类。使用过程,你不需要制作你的C++代码DLL;你可以从C++代码开始你的C++ exe。 你可以使用 Stase.Mydials.Prime< /Cord>来启动C++程序并将其输出重定向到流中,以供C语言应用程序使用。详细信息包括以下具体内容: string command = "arg1 arg2 ar

可能吗?如果是,怎么做


<> >任何链接或帮助都会被理解。

< P> >制作C++代码DLL,并使用pPoNoCK调用C++代码中的C++函数。< /P> 阅读本文:


另一种方法是使用.Net中的类。使用过程,你不需要制作你的C++代码DLL;你可以从C++代码开始你的C++ exe。

你可以使用<代码> Stase.Mydials.Prime< /Cord>来启动C++程序并将其输出重定向到流中,以供C语言应用程序使用。详细信息包括以下具体内容:

string command = "arg1 arg2 arg3"; // command line args
string exec = "filename.exe";      // executable name
string retMessage = String.Empty;
ProcessStartInfo startInfo = new ProcessStartInfo();
Process p = new Process();

startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardInput = true;

startInfo.UseShellExecute = false;
startInfo.Arguments = command;
startInfo.FileName = exec;

p.StartInfo = startInfo;
p.Start();

using (StreamReader output = p.StandardOutput)
{
    retMessage = output.ReadToEnd();
}

p.WaitForExit();

return retMessage;

<>你可以让C++程序把它的输出写入文件,并从文件中读取你的C程序。 如果您的应用程序对性能非常敏感,那么这不是最好的方法

这里是C++程序运行C++程序:

        try
        {
            Process p = StartProcess(ExecutableFileName);
            p.Start();
            p.WaitForExit();
        }
        catch
        {
            Log("The program failed to execute.");
        }
<>现在你可以从C++程序中写入文件,并从C程序中读取。< /P> <>这将告诉你如何从C++程序中写入文件:

这将向您展示如何从C#程序中读取文件:

既然OP似乎没有留下任何进一步的评论,我不禁想,这还不够吗?我想它可以归结为“中的对象,无论何时调用它”。如果“IT”指的是C++程序,那么Andy Mikula的答案是最好的。如果“it”指的是C#program,那么我建议:

C:\>myCpluplus.exe | myCsharp.exe
只需在myCsharp.exe中从Console.In读取