【问题标题】:Stackoverflow exception with Savefiledialog带有 Savefiledialog 的 Stackoverflow 异常
【发布时间】:2015-09-16 08:44:01
【问题描述】:

WinForms 应用程序中借助SaveFileDialog 保存xml 文件时,我收到Stackoverflow 异常。代码没什么特别的:

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

它在ShowDialog() 中立即失败。

只有在输入文件名后在对话框中按 Enter 时才会收到它。如果我用鼠标按保存,一切正常。

我在 Windows 7 机器上收到此异常,在 Windows 10 上尝试过 - 一切正常。有什么想法吗?

更新:很抱歉,我现在无法在我使用了几天的机器上重现此问题(在同一个程序中,没有任何相关更改)。

【问题讨论】:

  • 这段代码在哪里?你能在一个简短但完整的程序中重现这个吗?
  • 我会尝试提取相关代码并更新我的帖子
  • 什么时候显示对话框?在事件处理程序中?如果是,事件是什么?异常的堆栈跟踪是什么?
  • 我在browseButton_Click中显示它,用户按下...按钮并显示对话框。稍后也会发布堆栈跟踪
  • 您的程序将受到外壳扩展。当您使用 OpenFileDialog 和 SaveFileDialog 等 shell 对话框时加载到您的进程中的 DLL。如果你有一个很糟糕的代码注入,它当然可以注入一个 SOE 并终止进程。当您启用非托管代码调试时,您可以看到它们正在加载。使用 SysInternals 的 AutoRuns 清理您的机器。

标签: c# winforms savefiledialog


【解决方案1】:

我发现这个帖子试图找到解决同一问题的方法。

我能够解决我在构建配置管理器中针对特定架构的问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2013-07-22
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多