MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Отменяет ли регистрацию класса окна PostQuitMessage"
Answer 820562
Функцию UnregisterClass не нужно вызывать при завершении приложения: при этом все классы разрегистрируются автоматически. Ее нужно вызывать в случае, если класс создается из DLL, перед выгрузкой DLL из памяти (если DLL была загружена через LoadLibrary и затем выгружается до завершения всего приложения). Если такой класс не разрегистрировать, память под него не будет освобождена, а также попытки обращения к его оконной процедуре положат всю программу с Access Violation.
Что касается ошибки при регистрации класса, популярная причина - исчерпание системной таблицы атомов, которая используется для хранения зарегистрированных оконных классов, форматов буфера обмена и нестандартных сообщений. Если какое-то приложение создает слишком много атомов, она может исчерпаться и дальше ни одна программа в системе не сможет зарегистрировать класс (пока не прибить "жрущее" приложение или оно само не упадет). Возможно, в вашем коде или в какой-то используемой библиотеке баг, который приводит к этому.
Ссылки:
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.