有人可以帮我解决这个问题吗?如何在Visual Studio 2008中集成C++编译器
我目前正在致力于我的项目,获得我的荣誉学位的最后一年。我们正在开发一个应用程序来评估学生的编程作业(第一年级学生)
我只想知道如何使用C#代码集成C++编译器来编译C++代码。
在我们的例子中,我们将一个学生的C++代码加载到文本区域,然后点击按钮我们想编译代码。如果有任何编译错误,它将显示在附近的文本区域。 (接口附带)
最后它能够执行代码,如果没有任何编译错误。结果将显示在控制台中。
使用内置编译器,我们可以用C#(C#代码将加载到C++代码的文本区域intead)代码执行此操作。但仍然无法为C#代码做。
任何人都可以提出一个方法来做到这一点?可以将外部编译器集成到VS C#代码中吗?如果可能的话如何实现它?
非常感谢,如果有人会为解决此事做出贡献?
这是为生成按钮的代码,我们用C#代码编译
CodeDomProvider codeProvider = CodeDomProvider.CreateProvider继续进行( “CSHARP”); string Output =“Out.exe”; Button ButtonObject =(Button)sender;
rtbresult.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, rtbcode.Text);
if (results.Errors.Count > 0)
{
rtbresult.ForeColor = Color.Red;
foreach (CompilerError CompErr in results.Errors)
{
rtbresult.Text = rtbresult.Text +
"Line number " + CompErr.Line +
", Error Number: " + CompErr.ErrorNumber +
", '" + CompErr.ErrorText + ";" +
Environment.NewLine + Environment.NewLine;
}
}
else
{
//Successful Compile
rtbresult.ForeColor = Color.Blue;
rtbresult.Text = "Success!";
//If we clicked run then launch our EXE
if (ButtonObject.Text == "Run") Process.Start(Output); // Run button
}
感谢您的帮助。但是你能提供一些示例代码,所以我可以很好地理解它。 – Kasun 2010-06-14 11:26:36
增加了一些示例代码 – Phyx 2010-06-14 13:12:20
哇....你做得很好。感谢Thanx的帮助。但一件小事。我是编程初学者。那么你能告诉我如何为你的compile()方法传递值。 CL k = new CL() k .Compile(); – Kasun 2010-06-15 04:12:15