Savefiledialog 中的 Stackoverflow 异常

3

我在使用SaveFileDialog保存xml文件时,在WinForms应用程序中遇到了Stackoverflow异常。代码并不特别:

DialogResult result = saveFileDialog.ShowDialog(); 
if (result == DialogResult.OK) 
{
    txtOutputFile.Text = saveFileDialog.FileName;
    // do something
}

ShowDialog()方法会立即失败。

只有在我输入文件名后,在对话框中按下回车键才会收到此异常。如果我用鼠标点击保存,一切都能正常工作。

我在Windows 7机器上遇到了这个问题,但在Windows 10上尝试时一切正常。你有什么想法吗?

更新:非常抱歉,我现在无法再在几天前出现该问题的机器上重现此问题(在同一程序中,未进行任何相关更改)。


这段代码在哪里?你能否用一个简短但完整的程序来重现它吗? - Jon Skeet
我会尝试提取相关代码并更新我的帖子。 - demonplus
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Matteo Umili
我在browseButton_Click中展示它,用户按下...按钮后会显示对话框。稍后我会发布堆栈跟踪信息。 - demonplus
3
您的程序将受到 shell 扩展的影响。当您使用诸如 OpenFileDialog 和 SaveFileDialog 之类的 shell 对话框时,DLL 将被加载到您的进程中。如果其中一个 DLL 损坏了,它可能会注入 SOE 并终止进程,这是一种相当恶劣的代码注入。启用非托管代码调试后,您可以看到它们被加载。使用 SysInternals' AutoRuns 清理您的机器。 - Hans Passant
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - demonplus
1个回答

0

我在寻找解决同样问题的方法时发现了这个帖子。

我通过在我的构建配置管理器中针对特定架构来解决了这个问题。

确保配置设置为 x86x64,而不是 Any CPU


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接