1

我有一个用户不断收到此错误。是否有一个工具可以处理窗口处理计数,我可以用它来找出他为什么不断收到这个错误。

System.ComponentModel.Win32Exception:创建窗口句柄时出错。在 System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp) 在 System.Windows.Forms.Control.CreateHandle() 在 System.Windows.Forms.Form.CreateHandle() 在 System.Windows.Forms.Control.get_Handle()在 System.Windows.Forms.Form.ShowDialog(IWin32Window 所有者)

4

3 回答 3

2

如果您正在创建的窗体覆盖 WndProc(),请注意确保它在窗口创建过程中始终调用 base.WndProc()。

我无意中在我的覆盖中省略了对 base.WndProc() 的调用,并得到了你的堆栈跟踪。

于 2009-12-22T21:38:00.720 回答
1

也许这会有所帮助:

未处理的异常 Win32Exception,创建窗口句柄时出错

CLR 调试器 (DbgCLR.exe)

矿机调试器位于:

"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe"
于 2008-11-11T11:04:24.890 回答
1

我知道的最好的计数器是 Taskmgr.exe。查看 + 选择列并检查“用户对象”、“句柄计数”和“GDI 对象”。

通用诊断是您正在泄漏句柄并消耗了其中的 10,000 个。注意 .NET 2.0 SP1 和 .NET 3.5 的 Graphics.CopyFromScreen() 中的句柄泄漏错误,该错误已在 3.5 SP1 中修复。

于 2008-11-11T20:04:58.090 回答