应用程序中出现未处理的win32异常

时间:2017-06-21 20:12:18

标签: vb.net visual-studio-2012

我在vb.net中有一个应用程序,我正在Windows 10中测试,我似乎收到错误(下面的图片)。这个应用程序在Windows 7中完美运行,它实际上在Windows 10中没有任何问题,问题是,当我退出应用程序时,我收到错误。

它的结构方式是,如果我从IDE运行它,我首先看到用户登录的登录Windows然后转到MENU。如果它在我们的环境中运行,用户无需登录,因此登录表单永远不会出现,它会直接进入MENU。

一切都很好,直到我去EXIT应用程序,它变得一团糟,这是来自EXIT按钮的代码......

    Dim Answer as Integer
    Answer = MsgBox("Are you sure you wish to Close the application ?", MsgBoxStyle.YesNo)
    If answer = vbYes Then
        End
    End If

这些是我得到的错误:

enter image description here 首先我得到这个错误,点击关闭程序完全关闭它,如果我点击调试我得到下面的窗口....

enter image description here

第二个错误显示我实际上有VS2010和VS2012,它让我调试。问题是,源代码在TFS中,并且恰好我无法从我的Windows 10机器访问TFS(仅来自Win 7)。所以我无法调试它。但有没有理由为什么只在Windows 10中发生这种情况?

我甚至在END之前做了Me.Close(),以使窗体关闭。再次,它在Win 7中运行良好,但赢得10它给了我同样的问题。

1 个答案:

答案 0 :(得分:1)

使用“结束”关闭程序可能会有问题; this SO question的评论和答案解释了为什么会这样。至于使用Application.Exit()弹出一次的第二个问题,这是程序引用具有相同名称的函数调用的多个程序集的简单情况。在这种情况下,显式导入的Microsoft.Office.Interop.Excel和隐式导入的System.Windows.Forms都具有“Application.Exit()”成员。由于您已经显式导入了Excel,因此当编译器被迫决定使用哪个Exit()时,编译器会使用它,因为正在使用它并且实际上并未关闭程序,因此会抛出错误。要纠正这一点,您只需要通过替换

明确告诉编译器您要使用哪个Exit()
Application.Exit()

System.Windows.Forms.Application.Exit()