题
我有一个用户不断收到此错误。是否有一个工具可以进行窗口句柄计数,我可以用它来弄清楚为什么他会一直收到这个错误。
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,创建窗口句柄时出错
我的机器调试器上的位于:
"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe"
不隶属于 StackOverflow