Сообщение об ошибке после CFileDialog::DoModal()
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 15.07.16 08:38
Оценка:
Есть диалог открытия файлов fileDialog. Код его использования:

INT_RES  dlgRes;
CFileDialog  fileDialog(TRUE);
if (dlgRes==IDOK)
{
    //...
}


После того, как было выбрано имя файла (то есть когда dlgRes стал равен IDOK) действия между фигурными скобками выполняются. Однако через несколько минут в отладчике появляется окно с ошибкой:

Необработанное исключение в "0x7582c99e" в "MyProgram.exe":
0xc0000005: Нарушение прав доступа при чтении "0xfeeefeee"


Если в этом окне нажать на кнопку "Прервать", то появится другое окно с ошибкой:

Не загружена символьная информация ни для одного фрейма стека вызовов. Невозможно показать исходный код.


Если же была нажата кнопка "Продолжить", то появится следующее окно с ошибкой:

ОС Windows инициировала точку остановка в MyProgram.exe
Это может быть вызвано повреждением кучи и указывает на ошибку в MyProgram.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит MyProgram.exe
Выведенное на экран окно содержит дополнительные данные для ошибки


В последнем случае, после нажатия кнопки "Продолжить" управление передаётся основному окну моей программы.

Самое интересное, что те же сообщения об ошибке появляются, если у меня код внутри фигурных скобок пустой, то есть:

if (dlgRes==IDOK)
{
}

В чём причина этой ошибки? Как сделать так, чтобы её не было?

У меня стоит Visual C++ 2008.
1613 г. = 2024 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.