| Предыдущий | Следующий |
| ERROR_CLASS_ALREADY_EXISTS | ERROR_CLASS_HAS_WINDOWS |
ERROR_CLASS_DOES_NOT_EXIST
Зарегистрированный класс окна не найден
Классы окон приложения существуют в области регистрации, определённой USER32, и идентифицируются именем класса или атомом класса вместе с соответствующим контекстом модуля. Опечатка — лишь одна из возможных причин этого состояния.
Гонка при завершении работы может снять регистрацию класса до того, как поздний путь очистки или запроса попытается его использовать. Особого внимания требуют DLL: классы, зарегистрированные библиотекой DLL, не снимаются с регистрации автоматически только из-за выгрузки библиотеки, поэтому ошибки жизненного цикла могут создавать и противоположные устаревшие предположения.
Что проверить
- Убедитесь, что вызов регистрации завершился успешно, и сохраните полученный атом класса.
- Используйте одинаковую кодировку и написание имени класса во всех путях кода.
- Проверьте значение
HINSTANCE, передаваемое функциям работы с классами. - Проверьте порядок инициализации и завершения работы, если рабочие потоки всё ещё могут создавать окна.
Если CreateWindowEx не может разрешить класс при создании окна, ERROR_CANNOT_FIND_WND_CLASS является тесно связанным состоянием времени создания.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
