OpenFileDialog在Windows XP下崩溃,但不是Windows 7
我有一个奇怪的问题,我没有见过。我可以在Windows 7中打开OpenFileDialog
,没有任何问题。但是,当我在Windows XP上尝试我的应用程序时,立即调用OpenFileDialog.ShowDialog()
会使应用程序崩溃。它只是消失!从调试器运行时,我没有得到任何未处理的异常。如果我将代码封装在try/catch块中,则无法捕获任何内容。我也在Debug - > Exceptions中检查了所有抛出的异常,但没有弹出。我会在下面的答案中尝试其他一些建议,并将回报。OpenFileDialog在Windows XP下崩溃,但不是Windows 7
有谁知道如何解决这个问题?我发现一个post about something similar,但它是相反的问题。我会尝试调整桌面设置,看看它是否与此有关,但我很怀疑。
编辑 - 作为一个健全的检查,我写了一个测试WPF应用程序,直接显示OpenFileDialog
通过主窗口,以及另一个Window
可以显示在主窗口。它在Windows XP下完全正常工作。所以现在我很困惑。我已经证实,我没有像尝试从工作线程显示对话框那样做一些愚蠢的事情。 OpenFileDialog
会短暂显示,然后随应用程序一起消失。
编辑 - 我将尝试在另一台XP计算机上重现此问题。现在,我将尝试Windows XP模式,我们将看到会发生什么。
您是否在输出中看到任何“第一次机会”例外情况?事件日志中的任何条目?您使用的默认路径是否存在于XP机器上?
尝试增加一个处理程序的应用程序域的UnhandledException
做同样的,当你使用一个全新的,股票FileOpenDialog
没有任何调整发生的呢?从一个全新的应用程序什么都不做,但显示文件打开对话框?
我不能告诉你到底是什么问题,但这里是你可以做些什么来得到一个线索什么是真正发生的事情。我假设你正在使用VS2008或2005
1.开关释放模式 2.进入调试\例外,并标出全部“时抛出”的例外,像在这里说明:http://vvcap.net/db/JbWS_tzy2IpBoI7R7amm.htp 3.Run可执行的调试器,忽略来自VS的警告,没有调试信息 似乎在执行期间有一段时间抛出了win32异常,但这样或那样,您将从调试器中获得一条或多条消息,以解释发生了什么样的异常以及发生了什么。在大多数情况下,这些消息使得它很清楚究竟发生了什么错误
编辑:我忘了提及的一件事是,非托管调试也必须打开,像这里一样(当你直接从IDE启动程序)或在这里当您连接到正在运行的进程) 链接|编辑|编辑旗4月12日09时22:32
在19:01 加莱 回答4月10日09 1,2201924
我有一个类似的错误当我打开OpenFileDialog时DLL崩溃。原来,OpenFileDialog改变了工作目录,所以我的DLL试图写入一个不存在的相对文件。
将我自己的问题标记为可能重复的http:// stackoverflow。com/questions/3550030/c-wpf-openfiledialog-causes-crash-in-xp -in-vista – Dave 2011-04-14 19:19:19
也许不是重复的。我检查了XP电脑,它几乎安装了所有的.NET Framework版本。 – Dave 2011-04-14 20:15:07