在C#中的C / C ++ code编译器 [英] C/C++ Code Compiler in C#

查看:203
本文介绍了在C#中的C / C ++ code编译器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在C#中,我能够编写VB和C#code,使用下面的code,但我也没有办法编译C / C ++ code的。有没有办法这样做的?

In C#, I am able to compile VB and C# Code, using the code below, but I have no way of compiling C/C++ code. Is there any way of doing this?

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);
                }
            }

和创建一个VB编译器,我只需更换 Microsoft.CSharp.CSharp codeProvider codeProvider =新Microsoft.CSharp.CSharp codeProvider(); Microsoft.VisualBasic.VB codeProvider codeProvider =新Microsoft.VisualBasic.VB codeProvider();

And to create a VB compiler, I simply replace Microsoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider(); with Microsoft.VisualBasic.VBCodeProvider codeProvider = new Microsoft.VisualBasic.VBCodeProvider();

推荐答案

您可以编译C ++ / CLI code,不是本地C ++如上所述。 可以归档C ++ / CLI编译与.cpp的codeProvider(<一href="http://msdn.microsoft.com/en-us/library/microsoft.visualc.cpp$c$cprovider(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/microsoft.visualc.cpp$c$cprovider(v=vs.85).aspx)类使用它就像你的榜样。

You can compile c++/cli code, not native c++ as mentioned above. You can archive c++/cli compilation with CppCodeProvider (http://msdn.microsoft.com/en-us/library/microsoft.visualc.cppcodeprovider(v=vs.85).aspx) class using it like in your example.

这篇关于在C#中的C / C ++ code编译器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆