Утечка ресурсов GDI в DrawFrameControl

Кажется, что DrawFrameControl() создает объекты Font и Brush, выделяет их в dc и не удаляет их. (согласно сообщениям BoundsChecker). Кто-нибудь сталкивался с такой вещью?

1 ответ

Я испытал то же самое в различных Dll OS/CRT. Один из шаблонов, где

  • Я получаю DC окна (GetDC или GetWindowDC) для выполнения любой операции, которая мне нравится (например, создание совместимого DC памяти).
  • Я освобождаю контроллер домена после того, как с ним покончено, и даже если я не выбираю в нем какие-либо объекты GDI, я иногда получаю предупреждение Boundschecher о том, что в контексте устройства все еще остаются выбранные объекты.

Поскольку этих предупреждений точно нет в моем коде, я бы посоветовал принимать их с недоверием. Обычно я очищаю все предупреждения BC, которые имеют ссылку на мой код.

Не по теме: BC выдает много предупреждений, которые разработчик не может исправить в своем коде. В STL у вас будет множество предупреждений, но большинство из них "сравнивают несвязанный указатель". Это не значит, что БК по ошибке их бросает. "Сравнение несвязанного указателя" в обычном приложении может привести к катастрофе, но я думаю, что ребята, написавшие реализацию stl, знают, что они делают, и, вероятно, все равно изучили эти случаи.

Другие вопросы по тегам