| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > access violation при DoModal диалога |
| Автор: Тутанхамец 22.9.2006, 14:57 | ||
| Господа, прошу помощи. В С++ я вообще-то не в зуб ногой, но вот надо делать в нем прогу. У меня диалоговое приложение. Я пишу в нажатии кнопки на первом диалоге:
Диалог About, сгенерированный автоматически, именно так вроде выводится. А у меня при нажатии кнопки лезет unhandled exception, access violation. Чё за дела? |
| Автор: Тутанхамец 22.9.2006, 15:35 |
| Если добавлять новый диалог командой Insert New Form, то всё работает. Уважаемые, а в чем разница? Что надо написать, чтобы мой диалог, добавленный через Insert Resource, нормально DoModal'ился? И еще. Куда надо вставить #include "MyDialog.h", чтобы MyDialog был виден из любого модуля? |
| Автор: Nuzur 22.9.2006, 15:39 | ||||||
stdafx.h в но после всех рстальных инклудов! Но я бы тебе советовал вставлять инклуд в каждом модуле где он нужен.
Ты где-то в другом месте накосячил. А диалог "о программе..." вседа CAboutDlg и он действительно создается автоматически. И показать его
А что у тя такое CSecondDlg я незнаю. |
| Автор: Тутанхамец 22.9.2006, 15:48 |
| CSecondDlg появился так. Я нажал Inder - Resource, получил диалог, нарисовал контролы на форме и полез в MFC ClassWizard, а он при появлении спросил меня, не хочу ли я создать класс для этого диалога. Пожалуйста, развития моего ради, скажи, как мне отображать полученный таким образом диалог? И чем от него отличается диалог, вставленный через Insert - New Form? |
| Автор: Pulse69 22.9.2006, 16:30 |
| Если ты создал просто диалог и пытаешься его отобразить, никаких ошибок происходить не должно. Может быть, у тебя есть обработчики в этом классе, которые вызывают ошибки? Если я правильно тебя понял, то New Form от New Dialog очень сильно отличается. В MFC проект можно добавить поддержку CLR, к которой относятся такие элементы управления .NET как формы ( такие замиксовки изврат, ИМХО, редкостный ). Если ты пишешь MFC-приложение без поддержки .NET и Managed Extensions ( например, сборки мусора ), эти формы лучше не использовать. |
| Автор: Тутанхамец 22.9.2006, 16:58 |
| Обработчиков там пока нет вовсе. А по поводу NET - так я в VC 6.0 маюсь. Мне кажется, при создании New Form среда где-то пишет какой-то дополнительный код, который нужен для нормальной работы класса-диалога. А если я создаю диалог вручную, то должен либо юзать API для его отображения, либо лично прописать что-то где-то. Но в генерённом средой коде мне с непривычки разобраться тяжеловато. |