Здравствуйте Чайков Юрий Александрович, вы писали: ЧЮА>В stdafx.h стоит строчка: ЧЮА>#define _WIN32_WINNT 0x0500 ЧЮА>(это нужно, чтобы делать прозрачность для окошек) ЧЮА>В некотором месте программы создается объект класса CFileDialog: ЧЮА>.void CErrorDlg::OnButton1() ЧЮА>.{ ЧЮА>. CFileDialog dlg(TRUE); ЧЮА>.} ЧЮА>Как только этот объект разрушается — выскакивает unhandled exception. Если убрать #define — все в порядке. ЧЮА>Чего я не учел? Похоже, что ты все учел, а вот MFC не готова к новой версии. Просто размер структуры OPENFILENAME зависит от того, как определен макрос _WIN32_WINNT. Давно скомпилированная библиотека MFC об этот ничего не знает, вот и падает. Eдинственное, что могу посоветовать, это найти определение CFileDialog в afxdlgs.h и исправить там OPENFILENAME m_ofn; // open file parameter block на #if _WIN32_WINNT >= 0x500 OPENFILENAME_NT4 m_ofn; #else OPENFILENAME m_ofn; #endif Я на эти грабли уже садился когда Common Controls обновились. И когда они научатся об этом думать? Ну или просто не определяеть _WIN32_WINNT 0x0500, а вписать все нужные определения себе в программу. |