【问题标题】:Application Error thrown in Compact Framework app on Windows Ce 6.0Windows Ce 6.0 上的 Compact Framework 应用程序中引发的应用程序错误
【发布时间】:2009-09-29 22:51:47
【问题描述】:

当我使用取消按钮关闭程序时,我收到一个应用程序错误,它所做的只是关闭表单。

错误说: “应用程序 appName.exe 遇到严重错误,必须关闭”

如何开始修复它?它不是抛出的异常;没有给出其他信息。 它可能是什么,我该如何解决?

【问题讨论】:

    标签: compact-framework windows-ce application-error


    【解决方案1】:

    原来是这样。我的应用程序有两种形式 - 登录和主窗体,所有操作都在其中发生。登录表单有两个按钮(登录和取消)。登录按钮登录用户,关闭登录表单并打开主表单。取消按钮只是关闭登录表单。要关闭表单,我只需使用 this.Close()。

    发生的事情是我仍然需要通过执行以下操作来明确处理登录表单:

    frmLogin.Dispose();
    frmLogin = null;
    

    在退出程序之前(在我的 Program.cs 中)

    所以这解决了它。我必须确保在两种情况下都这样做:用户登录时以及他们选择不登录时。

    关键的事实是 frmLogin 是模态的,因此关闭时不会自动调用 Dispose()。

    【讨论】:

    • 这个修复也对我有用。我是从几个运行模式的 exe 中得到的。
    【解决方案2】:

    这通常是由托管代码无法捕获的进程空间中的系统级异常引起的。通常,当您 P/Invoke 到本机代码并为其提供错误的指针/参数并导致 CLR 未捕获的本机异常时,就会发生这种情况。

    【讨论】:

      【解决方案3】:

      在 Program.cs 中的 Application.Run(...) 行周围放置一个 try/catch 块,如下所示:

      try
      {
          Application.Run(new Form1());
      }
      catch (Exception ex)
      {
          MessageBox.Show(ex.Message);
      }
      

      您看到的消息意味着有一个未捕获的抛出异常。

      【讨论】:

      • 我修好了;虽然确定它发生在哪里有点棘手
      • 好吧,把它写下来作为答案,我会投票赞成。我很想知道它是什么。
      【解决方案4】:

      查看一些 GUI 组件、DLL 或端口资源。有时是未关闭的端口,有时是一些 GUI 组件(我处理一些 List GUI 组件)

      【讨论】:

      • 问题已得到修复 - 我找到了错误。虽然已经有一段时间了,我不记得是什么了。
      【解决方案5】:

      我安装了 resharper,但它的缓存产生了问题。我删除了缓存,它起作用了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-08
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多