Что означает код ошибки Windows 1412 (ERROR_CLASS_HAS_WINDOWS)?

 
Предыдущий Следующий
ERROR_CLASS_DOES_NOT_EXIST ERROR_INVALID_INDEX

ERROR_CLASS_HAS_WINDOWS

Существующие окна всё ещё используют класс

UnregisterClass требует сначала уничтожить все окна, созданные с указанным классом. Класс окна является шаблоном, общим для его экземпляров; удалять шаблон при наличии экземпляров запрещено.

Скрытые окна, окна только для сообщений, немодальные диалоги и окна вторичных потоков интерфейса — частые причины, по которым приложение считает очистку завершённой, хотя у класса ещё есть экземпляры. Поэтому уничтожения только видимого главного окна может быть недостаточно.

Что проверить

  • Перечисляйте или иным способом отслеживайте каждый экземпляр окна, созданный из класса.
  • Завершите вторичные GUI-потоки и вспомогательные окна только для сообщений до отмены регистрации класса.
  • Явно уничтожьте немодальные окна и дождитесь завершения владеющих ими потоков.
  • Вызывайте UnregisterClass только после того, как число экземпляров станет равным нулю.

Это отличается от ERROR_CLASS_ALREADY_EXISTS: регистрация допустима, но порядок завершения не позволяет её удалить.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.