7

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

VB コンパイラを作成するには、次のように置き換えますMicrosoft.CSharp.CSharpCodeProvider codeProvider = new Microsoft.CSharp.CSharpCodeProvider();Microsoft.VisualBasic.VBCodeProvider codeProvider = new Microsoft.VisualBasic.VBCodeProvider();

4

2 に答える 2

8

上記のネイティブ c++ ではなく、c++/cli コードをコンパイルできます。例のようにCppCodeProvider ( http://msdn.microsoft.com/en-us/library/microsoft.visualc.cppcodeprovider(v=vs.85).aspx ) クラスを使用して c++/cli コンパイルをアーカイブできます。

于 2013-11-01T16:11:33.153 に答える