winforms 如何处理未实现的错误cppcodeprovider中未处理异常

0x6upsns  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(148)

这个异常指示在代码行CodeDomProvider = cpp.CreateCompiler();
他说方法或操作没有实现
enter image description here
我的代码是

CppCodeProvider cpp = new CppCodeProvider();
                CodeDomProvider.IsDefinedLanguage("Cpp");
                CodeDomProvider.CreateProvider("cpp");
            
                ICodeCompiler IC = cpp.CreateCompiler();
                string Output = "Out.exe";
                Button ButtonObject = (Button)sender;

                textBox2.Text = "";

            
                CompilerParameters parameters = new CompilerParameters();
                parameters.GenerateExecutable = true;
                parameters.OutputAssembly = Output;
                
                CompilerResults results = IC.CompileAssemblyFromSource(parameters, textBox1.Text);

                if (results.Errors.Count > 0)
                {
                    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);
                }
jaql4c8m

jaql4c8m1#

简而言之,正如我在注解中所说的,当您添加了一个方法,但没有在该方法中放置任何实现时,通常会发生 Method or Operation Not Implemented 异常。这通常发生在您使用IntelliSense生成方法时,编译器会告诉您“嘿,您需要在这里放置一些东西”。

public void MyMethod()
{
    throw new NotImplementedException();
}

在方法中加入实作,什至注解例外状况的掷回,都可以解决这里的问题。

public void MyMethod()
{
    //throw new NotImplementedException();
}

我已经说过了,我知道抛出问题的方法不是您的代码,这更多的是为了让您理解错误告诉您的什么
我认为您尝试执行当前操作的方式可能不正确。在做一些研究并查看MS Learn页面后,您会注意到该页面已 * 过时 *,从.net Framework 2.0开始就已过时。
有关此主题,请参见SO上的类似主题:How to compile C++ Code using CppCodeProvider in C#

相关问题