我有一个用户不断收到此错误。是否有一个工具可以进行窗口句柄计数,我可以用它来弄清楚为什么他会一直收到这个错误。

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所有者)

有帮助吗?

解决方案

我知道的最好的计数器是Taskmgr.exe。查看+选择列并选中“用户对象”,“处理计数”和“处理计数”。和“GDI对象”。

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

其他提示

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

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

也许这可能会有所帮助:

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

CLR Debugger(DbgCLR.exe)

我的机器调试器上的

位于:

"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe" 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top