当我调用OpenFileDialog的ShowDialog方法时,vshost32.exe已停止工作

时间:2011-08-18 08:36:53

标签: c# wpf visual-studio-2010 vshost.exe

我有一个c#应用程序,我正在对它进行最终测试。

但是现在,到目前为止每次工作的功能都不再起作用了!

我有一个按钮,当我点击它时我想浏览文件,我看到“打开文件”窗口,半秒后,我得到了一个未被捕获的视觉工作室错误:

vshost32.exe已停止工作:

很抱歉,错误发生在法语本地化计算机上:

Signature du problème :
  Nom d’événement de problème:  APPCRASH
  Nom de l’application: TOM.vshost.exe
  Version de l’application: 10.0.30319.1
  Horodatage de l’application:  4ba2084b
  Nom du module par défaut: ntdll.dll
  Version du module par défaut: 6.1.7600.16695
  Horodateur du module par défaut:  4cc7ab44
  Code de l’exception:  c0000008
  Décalage de l’exception:  0004631f
  Version du système:   6.1.7600.2.0.0.256.48
  Identificateur de paramètres régionaux:   4108
  Information supplémentaire n° 1:  ffb6
  Information supplémentaire n° 2:  ffb61531feaa1f65f528a2694a510c22
  Information supplémentaire n° 3:  b220
  Information supplémentaire n° 4:  b2205da238309b0a025a25162a3a18f3

我的代码是:

OpenFileDialog ofd = new OpenFileDialog {Filter = Filters};
if (ofd.ShowDialog() != true) {
    return;
}

当我在ofd.ShowDialog中时崩溃。

这是与代码相关的问题吗?

您对如何调试有任何想法吗?甚至如何调试这个?

当激活“非托管代码进行调试”时,我得到了这个:

"First-chance exception at 0x77cd631f in TOM.exe: 0xC0000008: An invalid handle was specified."

堆栈跟踪是否有用:

>   ntdll.dll!77cd631f()    
    [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
    ntdll.dll!77d1792d()    
    ntdll.dll!77ce343b()    
    ntdll.dll!77ce2d80()    
    ole32.dll!776b4102()    
    ole32.dll!776b411e()    
    ole32.dll!7767e505()    
    SearchFolder.dll!1046b49d()     
    SearchFolder.dll!1046b267()     
    shell32.dll!76281cb7()  
    shell32.dll!761701b6()  
    shell32.dll!761991fd()  
    shell32.dll!761d61ee()  
    shell32.dll!761d6159()  
    System.ni.dll!524c4ed4()    
    shlwapi.dll!77b6b6cf()  
    ntdll.dll!77cbb428()    
    ntdll.dll!77cbe6f9()    
    kernel32.dll!77c01114()     
    ntdll.dll!77ceb429()    
    ntdll.dll!77ceb3fc()    

我尝试过的一些事情:

一个重要的新观点:当我在没有visual studio的情况下运行它时,似乎没有发生错误(这似乎是逻辑)

重要的一点:似乎相同的代码在另一台计算机的visual studio中工作(完全相同并发布了相同的windows图像

我尝试删除所有文件并执行GetLatest,但仍无法正常工作

8 个答案:

答案 0 :(得分:19)

我遇到了同样的问题,我的解决方案是在“项目属性/调试/启用调试器”部分中“启用本机代码调试”。

我想,我应该能够调试问题,但错误已经消失了。

答案 1 :(得分:4)

答案 2 :(得分:2)

我刚刚重新安装了我在安装后完成的这台计算机的图像,现在它可以正常工作:/。很奇怪

答案 3 :(得分:2)

我有一个非常类似的问题让我疯狂了几天。它最终成为我的笔记本电脑上预装的Lenovo Password Manager。它使用密码框覆盖表单,并使用记住密码横幅。自卸载以来,我没有再遇到过这个问题。

对于遇到这种情况的人,我的建议是检查是否有任何软件完全覆盖,并检查是否是原因。

答案 4 :(得分:1)

我记得在使用我们的法语应用程序的德语语言环境的计算机上看到类似于此的内容。我不记得我们是如何解决它的,但相似性指向我检查区域设置...... 无效的句柄虽然通常意味着你调用的对象已被销毁,但我真的无法猜测哪个对象,因为此时必须仍然有效。

答案 5 :(得分:1)

我在VB项目中遇到过“VS Express 2013 for Windows Desktop”的问题。在菜单DEBUG - >例外......已检查过项目。在该对话框中的“全部重置”(取消全部检查)后,问题消失一次,但下次再次出现。有一个0x4000001f,所以我找到Program and debugger quit without indication of problem。给出的提示再次帮助了一个:项目 - >属性 - >调试并转动关闭“启用Visual Studio托管过程”。后来又出现了问题!

答案 6 :(得分:0)

我的解决方案是添加新的调试方法。而不是 AnyCPU 我使用 x86 调试(在"开始" 按钮旁边点击配置管理器 - >平台 - >新增 - > x86 )。与此同时,我还在Project Properities中启用了 ClickOnce安全设置"这是完全信任的应用程序" ,但不知道其影响。希望这会有所帮助。

答案 7 :(得分:0)

我有同样的问题我的异常代码是c0020001。我通过重置所有异常解决了这个问题。为此,请转到{Debug - >例外}在那里你可以重置所有例外。