Re: Перестал компилироваться проект
От: Evgeniy Skvortsov Россия  
Дата: 24.10.17 13:54
Оценка:
Здравствуйте, sushko, Вы писали:

S>Что я мог сломать в VS?


У меня такое ощущение, что сломалось что-то в MFC, так как падает такой простейший код:
    CMFCApplication1Dlg *dlg = new CMFCApplication1Dlg();
    dlg->Create(IDD_MFCAPPLICATION1_DIALOG);

    m_pMainWnd = dlg;
    INT_PTR nResponse = dlg->DoModal();


При чем если заменить динамическое создание диалога на:
    CMFCApplication1Dlg dlg;

    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();


То всё прекрасно работает.

Почему падает, я так и не понял, прошелся отладчиком внутрь DoModal(), там вызывается PreModal()
и первой строкой этой функции стоит ASSERT(m_hWnd == NULL), на ней и падает. В чем причина — мне пока неясно.

Добавлено:

В общем как оказалось не нужно вызывать Create(), он теперь автоматов зовется из конструктора.
ТО есть меняем код на:

    CMFCApplication1Dlg *dlg = new CMFCApplication1Dlg();
    INT_PTR nResponse = dlg->DoModal();


И все прекрасно работает.
Судя по всему что-то наменяли в логике работы MFC и теперь для вызова DoModal() — не нужно звать Create()
Какого-то объяснения пока не обнаружил.
Отредактировано 24.10.2017 14:09 Evgeniy Skvortsov . Предыдущая версия . Еще …
Отредактировано 24.10.2017 14:04 Evgeniy Skvortsov . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.