【问题标题】:How to display C program errors in asp.net web page using c#如何使用c#在asp.net网页中显示C程序错误
【发布时间】:2014-02-25 10:46:29
【问题描述】:

我正在创建在线编译器应用程序。我已经用 C#.net 和 VB.net 成功创建了。但是当我尝试使用 C 和 C++ 时,我不知道如何在 asp.net 网页中显示错误。

下面只显示错误而不显示错误在代码中的位置

Process proc = new Process();
proc.StartInfo.FileName = Session[batchPath].ToString();
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();

是对的还是我应该做任何修改?提前致谢。

【问题讨论】:

    标签: c# c++ asp.net c compiler-construction


    【解决方案1】:

    您使用StandardOutput as 从您的流程中获得结果

    string cResults = proc.StandardOutput.ReadToEnd();
    // and then wait to exit.
    proc.WaitForExit();
    

    【讨论】:

    • 你能告诉我如何得到一个C程序的错误列表吗?我已将以下代码用于 C# 和 VB.net。 CompilerResults 结果 = icc.CompileAssemblyFromSource(parameters, txtProgram.Text); if (results.Errors.Count > 0) { txtCompiler.ForeColor = Color.Red; foreach (CompilerError CompErr in results.Errors)
    • @Balaji 当您在示例中运行 c 编译器时,它会在控制台上返回错误列表,在那里您会在我键入时读取错误。你有没有直接运行 c 编译器来查看什么返回?然后你需要解析这个错误......我不知道你真正想做什么。您甚至没有键入您运行的程序。当你编译你的 Visual Studio 程序时,你注意到输出窗口了吗?
    • 我明白你在说什么,但我想知道发生错误的程序的确切行。你能提供我的代码吗?
    • @Balaji 我们在这里可能不会说同一种语言,因为我不明白您还需要什么?对于您提供的代码,如果您以这种方式运行 c 编译器,则在 cResults 上,您将获得编译器的返回。在那里你解析错误并且你有你的行。另外我什至不知道你运行什么程序,什么编译器。
    【解决方案2】:

    你必须:

    • 运行编译器
    • 将其错误输出重定向到文本文件
    • 解析文本文件以找到错误的文本,行号和列号
    • 将其转换为您自己的格式化错误消息
    • 将其转换为可以在 HTML 中显示的内容。

    唯一困难的部分是解析错误文件,但您不是第一个。每个人都这样做,包括所有的 IDE。也许您可以从 Eclipse 或 Netbeans 或其他地方获取一些代码。

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2013-06-23
      相关资源
      最近更新 更多