考虑到将来有可能需要用C#调用C++的程序,先实验一下。
先准备下C++程序:
#include
<
stdio.h
>
#include < iostream >
int main()
{
printf( " hi " );
int v1,v2;
std::cin >> v1;
v2 = v1 * 2 ;
std::cout << v2 << std::endl;
}
#include < iostream >
int main()
{
printf( " hi " );
int v1,v2;
std::cin >> v1;
v2 = v1 * 2 ;
std::cout << v2 << std::endl;
}
用C#调用:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
Bind();
}
private void Bind()
{
Process p = new Process();
p.StartInfo.FileName = @" F:\code\cpp\FirstCmd\debug\FirstCmd.exe " ;
// p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false ;
p.StartInfo.RedirectStandardInput = true ;
p.StartInfo.RedirectStandardOutput = true ;
p.StartInfo.CreateNoWindow = false ;
p.Start();
//
p.StandardInput.WriteLine( " 2 " );
string output = p.StandardOutput.ReadToEnd();
Response.Write(output);
// if (p.HasExited)
// p.Kill();
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
Bind();
}
private void Bind()
{
Process p = new Process();
p.StartInfo.FileName = @" F:\code\cpp\FirstCmd\debug\FirstCmd.exe " ;
// p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false ;
p.StartInfo.RedirectStandardInput = true ;
p.StartInfo.RedirectStandardOutput = true ;
p.StartInfo.CreateNoWindow = false ;
p.Start();
//
p.StandardInput.WriteLine( " 2 " );
string output = p.StandardOutput.ReadToEnd();
Response.Write(output);
// if (p.HasExited)
// p.Kill();
}
}