Отладка дескриптора окна в Winforms - PullRequest
1 голос
/ 11 ноября 2008

У меня есть пользователь, который продолжает получать эту ошибку. Есть ли инструмент для подсчета дескрипторов окон, который я могу использовать, чтобы выяснить, почему он продолжает получать эту ошибку.

System.ComponentModel.Win32Exception: Ошибка создания дескриптора окна. в System.Windows.Forms.NativeWindow.CreateHandle (cp CreateParams) в System.Windows.Forms.Control.CreateHandle () в System.Windows.Forms.Form.CreateHandle () в System.Windows.Forms.Control.get_Handle () в System.Windows.Forms.Form.ShowDialog (владелец IWin32Window)

Ответы [ 3 ]

2 голосов
/ 23 декабря 2009

Если создаваемая вами форма переопределяет WndProc (), убедитесь, что она всегда вызывает base.WndProc () во время процесса создания окна.

Я случайно пропустил вызов base.WndProc () в моем переопределении и получил трассировку стека.

1 голос
/ 11 ноября 2008

Лучший счетчик, который я знаю, это Taskmgr.exe. Просмотр + Выбор столбцов и отметьте «Объекты пользователя», «Количество дескрипторов» и «Объекты GDI».

Общая диагностика состоит в том, что вы протекаете ручками и потребляете 10000 из них. Остерегайтесь ошибки утечки дескриптора в .NET 2.0 SP1 и .NET 3.5 Graphics.CopyFromScreen (), исправленных в 3.5 SP1.

1 голос
/ 11 ноября 2008

Может быть, это может помочь:

Необработанное исключение Win32Exception, Ошибка при создании дескриптора окна

Отладчик CLR (DbgCLR.exe)

на моем отладчике машины находится по адресу:

"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...