Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Вызов модального диалога из модального диалога


Автор: erslgoeirjh 17.1.2017, 11:07
Такая проблема: из главного окна приложения при нажатии на кнопку "Рассчитать" вызывается консольное окно, в котором показывается процесс математических модальный вычислений и модальный диалог calcManDialog, на котором отображены четыре кнопки: "Остановить", "Показать", "Продолжить", "Выйти". 

Код

calcManDialog.DoModal();



После завершения математических вычислений пользователь может нажать на кнопку "Показать", чтобы ему высветился модальный диалог solutionDialog, в котором отображается решение математической задачи:

Код

solutionDialog.DoModal();



На что у меня в отладчике выскакивает сообщение:

Цитата

Debug Assertion Failed!

Program: C:\Windows\system32\mfc110d.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp

Line: 329


Что это означает? Как исправить эту ошибку?
(Среда разработки--Visual Studio 2012, операционная система--Windows 7).

Автор: vol4ek 17.1.2017, 15:19
как подкючаете solutionDialog.h ? в calcManDialog.h ?

Добавлено через 8 минут и 37 секунд
Debug Assertion Falied значит, что у вас выражение какого-то утверждения (assert) является ложным, в то время, как для нормального выполнения программы, это выражение должно быть истинным.

Утверждения используются для обнаружения ошибок в программе (как правило, только в отладочных версиях, а в релизах утверждения игнорируются). Синтаксис примерно такой ASSERT(выражение). Если выражение истинно, то выполнение приложения продолжается обычным образом, если ложно - выполнение прерывается и выводится диагностическое сообщение.

Например, в утверждении может выполняться проверка того, что указатель не является нулевым ASSERT(ptr != NULL), т.к. далее должна выполняться работа с данными по этому указателю. Если выражение утверждения является ложным (т.е. его условие не выполняется), то выполнение программы прерывается и выводится сообщение.
Вот и посмотрите что там написано в файле winocc.cpp в строке 329

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)