Ну
ASSERT(::IsWindow(m_hWnd));
является утверждением. Утверждения - это утверждения, которые подтверждают, что что-то верно, и убивают вашу программу, если это не так. Они предназначены для использования для отладки и разработки, а не для того, чтобы быть в программе после ее выпуска, поэтому они обычно компилируются только в отладочных сборках. Таким образом, его не будет в сборке релиза, и вы не получите сообщение об ошибке. Это не означает, что в сборке релиза нет проблем. Это просто означает, что он не выполняет оператор, чтобы проверить, есть ли проблема.
Я не знаю много об этой ошибке, но, глядя на нее,
::IsWindow(m_hWnd)
явно ложно (отсюда и сообщение об ошибке). Может показаться, что документация для IsWindow () указывает на то, что проблема в том, что рассматриваемый дескриптор окна не является дескриптором действительного окна. Возможно, он не был создан должным образом или уже уничтожен. Вы должны выяснить, почему ваш дескриптор окна недействителен.
Быстрый поиск в Google по запросу "mfc iswindow" вызывает эту ветку на msdn, которая может вам помочь.