5 / 5 / 1
Регистрация: 08.08.2011
Сообщений: 118
|
||||||
1 | ||||||
C++ MFC-приложение, ошибка при рисовании.08.08.2011, 15:52. Показов 1536. Ответов 5
Метки нет (Все метки)
Учусь программировать, изучаю MFC. Решил написать простенькое приложение. Суть в том, чтобы на форме отображался прямоугольник(создал для него класс, включающий цвет, координаты и т.д.). Он реагирует на нажатие клавиш, перемещаясь по окну(работает). Все это реализовано в функции, которая вызывается из таймера. Все работает, доволен, но где-то после четырех тысяч вызовов(таймер срабатывает каждые 100 миллисекунд) выскакивает ошибка:
http://imageshost.ru/photo/128018/id795763.html Скореее всего ошибка проискходит в этом месте:
http://narod.ru/disk/21182766001/MFC.rar.html Это ссылка на файлы проекта, если нужны. Как можно исправить ошибку? Заранее спасибо.
0
|
08.08.2011, 15:52 | |
Ответы с готовыми решениями:
5
MFC приложение ошибка fatal error LNK1120: неразрешенных внешних элементов:1 При рисовании графика в приложении MFC выдает ошибку "отсутствует перегруженная функция CClientDC" ошибка при рисовании!!! Ошибка при рисовании сферы |
5 / 5 / 1
Регистрация: 08.08.2011
Сообщений: 118
|
|
08.08.2011, 17:01 [ТС] | 3 |
А она и так запускается без исключения . Исключение возникает где-то после 4000 вызовов функций.
Добавлено через 32 минуты Пробовал вообще убрать операции замены пера - исключение при рисовании прямоугольника
0
|
08.08.2011, 17:11 | 4 | |||||
Не удивительно, что ошибка вызывалась.
2
|
5 / 5 / 1
Регистрация: 08.08.2011
Сообщений: 118
|
|||||||||||
08.08.2011, 20:27 [ТС] | 6 | ||||||||||
Ну вот и первые грабли. Спасибо.
ЗЫ. Пробовал вообще все связанное с рисованием удалить - исключение не вылезает, но приложение конкретно виснет. Сейчас попробую удалить перо и кисть. ... ЗЗЫ. Не, все равно ошибка вылазит . Вот что сделал:
Добавлено через 17 минут Блин, pDC->ReleaseOutputDC() сразу не разглядел... Что это? Добавлено через 17 минут Исключение по-моему вызывается из-за того, что в какой-то момент указатель pDC становится равным NULL(и без ReleaseOutputDC()). Функцию вызываю из таймера:
Добавлено через 2 часа 34 минуты Временное решение проблемы найдено: использовать CClientDC вместо CDC . Уже сейчас, пока я пишу эти строки, зарегестрировано 41138 запусков функции рисования (при использовании CDC их было около 5000). Интересно, чего они там такого понапихали в CClientDC, что не вызывается исключение? Может кто-нибудь объяснить?
0
|
08.08.2011, 20:27 | |
08.08.2011, 20:27 | |
Помогаю со студенческими работами здесь
6
Ошибка при рисовании на канве Ошибка переполнения при рисовании на PictureBox Ошибка при рисовании линий и окружностей Ошибка при рисовании на форме через Canvas->FloodFill Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |