簡體   English   中英

在 C# 程序中編譯並執行 C++ 代碼

[英]Compile and execute C++ code inside C# program

我正在尋找一種在 C# 程序中編譯和執行 C++ 代碼的解決方案。 有沒有辦法做到這一點? 我正在使用 Visual Studio 2019 Professional。 下面的代碼是創建 C# 編譯器。

Microsoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider();

我想創建 C++ 代碼並編譯並執行它。 我在我的代碼中嘗試這個:

CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("Cpp");

但錯誤是:

System.Configuration.ConfigurationErrorsException:'無法找到 CodeDom 提供程序類型“Microsoft.VisualC.CppCodeProvider,CppCodeProvider,Version=10.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。'

CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("Cpp");
string Output = "Out.exe";
Button ButtonObject = (Button)sender;

textBox2.Text = "";
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
//Make sure we generate an EXE, not a DLL
parameters.GenerateExecutable = true;
parameters.OutputAssembly = Output;
CompilerResults results = 
codeProvider.CompileAssemblyFromSource(parameters, textBox1.Text);

if (results.Errors.Count > 0)
{
    textBox2.ForeColor = Color.Red;
    foreach (CompilerError CompErr in results.Errors)
    {
        textBox2.Text = textBox2.Text +
                    "Line number " + CompErr.Line +
                    ", Error Number: " + CompErr.ErrorNumber +
                    ", '" + CompErr.ErrorText + ";" +
                    Environment.NewLine + Environment.NewLine;
    }
}
else
{
    //Successful Compile
    textBox2.ForeColor = Color.Blue;
    textBox2.Text = "Success!";
    //If we clicked run then launch our EXE
    if (ButtonObject.Text == "Run") Process.Start(Output);
}

您可能需要創建一個 C++ 項目,然后將其編譯成DLL並在您的 C# 項目中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM