Joe*_*Joe 6 .net c c# c++ compiler-construction
在C#中,我能够使用下面的代码编译VB和C#代码,但我无法编译C/C++代码.有没有办法做到这一点?
C#编译器:
public void Compile(string ToCompile)
{
string Result = null;
string errors = null;
Microsoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider();
System.CodeDom.Compiler.ICodeCompiler icc = codeProvider.CreateCompiler();
string Output = @"mypath";
System.CodeDom.Compiler.CompilerParameters parameters = new System.CodeDom.Compiler.CompilerParameters();
parameters.GenerateExecutable = true;
parameters.OutputAssembly = Output;
System.CodeDom.Compiler.CompilerResults results = icc.CompileAssemblyFromSource(parameters, ToCompile);
if (ReturnErrors == true)
{
if (results.Errors.Count > 0)
{
foreach (System.CodeDom.Compiler.CompilerError CompErr in results.Errors)
{
errors +=
"Line number " + CompErr.Line +
", Error Number: " + CompErr.ErrorNumber +
", '" + CompErr.ErrorText + ";" +
Environment.NewLine + Environment.NewLine;
}
Result += "Errors have been found in your code: " + Environment.NewLine + errors;
}
else
{
Result += "Success!";
System.Diagnostics.Process.Start(Output);
}
}
Run Code Online (Sandbox Code Playgroud)
并创建一个VB编译器,我只需替换Microsoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider();为Microsoft.VisualBasic.VBCodeProvider codeProvider = new Microsoft.VisualBasic.VBCodeProvider();
您可以编译c ++/cli代码,而不是如上所述的本机c ++.您可以使用CppCodeProvider(http://msdn.microsoft.com/en-us/library/microsoft.visualc.cppcodeprovider (v=vs.85 ) .aspx)类来存档c ++/cli编译,就像在您的示例中一样.
| 归档时间: |
|
| 查看次数: |
6365 次 |
| 最近记录: |