3
我想調用一個C++ exe文件到我的c#應用程序中,該應用程序需要一個命令行參數並返回結果,以便我可以在我的c#應用程序中使用它,不知道該怎麼做。在c#應用程序和C++ exe文件之間傳遞參數和返回
這裏的簡單示例,我嘗試和失敗: C++代碼:returner.exe
#include<iostream>
#include<cstdlib>
using namespace std;
int main(string argc , string argv)
{
int b= atoi(argv.c_str());
return b;
}
C#代碼:
private void button1_Click(object sender, EventArgs e)
{
ProcessStartInfo stf = new ProcessStartInfo("returner.exe", "3");
stf.RedirectStandardOutput = true;
stf.UseShellExecute = false;
stf.CreateNoWindow = true;
using (Process p = Process.Start(stf))
{
p.WaitForExit();
int a = p.ExitCode;
label1.Text = a.ToString();
}
}
我希望看到3在拉布勒。但它總是0。我該怎麼辦 ?
也許一個C++ - 做DLL將更好地滿足您的要求。 – chris
你的C++代碼甚至有效嗎?這個'主要'簽名不是標準的。 – Mat
你有沒有考慮調試?如果你的C++ main顯式返回'3',會發生什麼。忽略了'主要'參數(我並不滿意 - 請參閱Mat評論)。 –