После некоторого времени активного рисования начинает рисовать единичной черной кистью. Стал грешить на утечку GDI объектов и достижения лимита, после чего новые объекты не создаются, и используется дефолтная кисть.
Она показывает, что по отдельным типа ресурсов всё хорошо, но в сумме — утекает:
Скрытый текст
Ну и при достижении 10000 ожидаемо начинает рисоваться шляпа.
Тут вопросы — это тулза видимо что-то не показывает, какие-то типы GDI объектов, но суммарное количество GDI объектов — верное
Вопрос такой — что она могла забыть?
И как бы мне самому получать эту статистику, а в идеале — получить списки всех утекших объектом и их характеристики — так бы я мог бы быстрее наверное понять, что и как утекает
Здравствуйте, Marty, Вы писали:
M>Тут вопросы — это тулза видимо что-то не показывает, какие-то типы GDI объектов, но суммарное количество GDI объектов — верное
Некоторые GDI хендлы используются внутри USER объектов.
Типичный пример — иконка, внутри содержит две битмапы.
Вот такие GDI объекты не попадают в статистику gdi_handles.
Здравствуйте, qaz77, Вы писали:
M>>Тут вопросы — это тулза видимо что-то не показывает, какие-то типы GDI объектов, но суммарное количество GDI объектов — верное
Q>Некоторые GDI хендлы используются внутри USER объектов. Q>Типичный пример — иконка, внутри содержит две битмапы. Q>Вот такие GDI объекты не попадают в статистику gdi_handles.
У меня пока кроме перьев, кистей и фонтов ничего не используется. По крайней мере, я явно ничего не использую
Здравствуйте, Marty, Вы писали:
M>У меня пока кроме перьев, кистей и фонтов ничего не используется. По крайней мере, я явно ничего не использую
Вряд ли у тебя создание и удаление размазано по всей программе. Значит можно сопоставить, что создано, то и удалено. Проверь, что прежде чем удалить гди-объект он убран из контекста, т.е. вызвано SelectObject(объект взамен удаляемого).
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
M>>У меня пока кроме перьев, кистей и фонтов ничего не используется. По крайней мере, я явно ничего не использую
SVZ>Вряд ли у тебя создание и удаление размазано по всей программе. Значит можно сопоставить, что создано, то и удалено. Проверь, что прежде чем удалить гди-объект он убран из контекста, т.е. вызвано SelectObject(объект взамен удаляемого).
Да, я уже пофиксил. Было кое-какое говнецо, переписал нормально, и течь перестало