asp.net(C#)调用C++程序并交互操作【转】http://www.cnblogs.com/greatverve/archive/2010/06/07/Csharp-transfer-Cpp.html
考虑到将来有可能需要用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#调用:
大气象
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();
}
}