OpenFileDialog在Windows XP下崩溃,但不在Windows 7下崩溃

时间:2011-04-14 18:04:56

标签: wpf visual-studio-2010 .net-4.0 crash openfiledialog

我有一个我以前没见过的奇怪问题。我可以毫无问题地在Windows 7中打开OpenFileDialog。但是,当我在Windows XP上尝试我的应用程序时,调用OpenFileDialog.ShowDialog()会立即崩溃应用程序。它消失了!从调试器运行时,我没有得到任何未处理的异常。如果我将代码包装在try / catch块中,则不会捕获任何内容。我还检查了Debug中的所有抛出异常 - >例外,但没有任何弹出。我将在下面的答案中尝试其他一些建议,并将报告回来。

有谁知道如何解决这个问题?我找到了post about something similar,但这是相反的问题。我会尝试调整桌面设置以查看它是否与此相关,但我很怀疑。

编辑 - 作为一个完整性检查,我编写了一个测试WPF应用程序,它通过主窗口直接显示OpenFileDialog以及主窗口可以显示的另一个Window。它在Windows XP下完全正常。所以现在我真的很困惑。我已经证实我没有像尝试从工作线程显示对话框那样做一些愚蠢的事情。 OpenFileDialog会短暂显示,然后随应用程序一起消失。

编辑 - 我将尝试在另一台XP计算机上重现此问题。现在,我将尝试Windows XP模式,我们将看到会发生什么。

3 个答案:

答案 0 :(得分:1)

当我打开OpenFileDialog时DLL崩溃时,我遇到了类似的错误。原来,OpenFileDialog改变了工作目录,所以我的dll试图写入一个不存在的相对文件。

答案 1 :(得分:0)

您是否在输出中看到任何“第一次机会”异常?事件日志中的任何条目?您使用的默认路径是否存在于XP计算机上?

尝试向App Domain的UnhandledException

添加处理程序

当您使用全新的股票FileOpenDialog而不进行任何调整时,会发生同样的情况吗?一个全新的应用程序怎么样,只显示文件打开对话框?

答案 2 :(得分:0)

请参阅Galet's post


我无法告诉你究竟是什么问题,但是你可以做些什么来弄清楚究竟发生了什么。我假设您使用的是VS2008或2005。

1.切换到释放模式 2.转到Debug \ Exceptions,并标记所有“Thrown”异常,如下所示:http://vvcap.net/db/JbWS_tzy2IpBoI7R7amm.htp 3.在调试器中运行可执行文件,忽略VS中没有调试信息的警告 似乎在执行过程中有一段时间抛出了win32异常,但不管怎样,您将从调试器获得一条或多条消息,说明发生了什么样的异常以及在哪里发生异常。在大多数情况下,这些消息非常清楚到底出了什么问题

编辑:我忘记提到的一件事是,还必须打开非托管调试,例如此处(当您直接从IDE启动程序时)或此处(当您附加到正在运行的进程时) 链接|编辑|标志编辑于2009年4月12日22:32

于2009年4月10日19:01回答 加莱 1,2201924