2008-11-11 93 views
1

我有一個用戶不斷收到此錯誤。有沒有一個工具,窗口句柄計數,我可以用它來弄清楚爲什麼他一直得到這個錯誤。Winforms中的窗口句柄調試

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

+0

您需要關於此行爲的更多信息。 這個問題可以解決幾種情況。 – TcKs 2008-11-11 10:55:08

回答

1

我知道的最好的計數器是Taskmgr.exe。查看+選擇列並選中「用戶對象」,「處理計數」和「GDI對象」。

通用診斷是你泄漏手柄並消耗了10,000個手柄。謹防.NET 2.0 SP1和.NET 3.5的Graphics.CopyFromScreen()在3.5 SP1中修復的句柄泄漏問題。

1

也許這可以幫助:

Unhandled exception Win32Exception,Error creating window handle

CLR Debugger (DbgCLR.exe)

對礦井

機器調試程序位於:

"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe"
+0

你可以從哪裏下載這個..我似乎沒有在我的機器上。 – leora 2008-11-12 09:47:24

+0

我不確定。我用Visual Studio安裝它。也許你應該從http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en – 2008-11-19 11:57:40

2

如果您正在創建的表單覆蓋WndProc(),請注意確保它在窗口創建過程中始終調用base.WndProc()。

我不小心忽略了一個調用base.WndProc()在我的覆蓋,並得到你的堆棧跟蹤。