Здравствуйте, Alexander G, Вы писали:
AG>Потому что он возвращает экземляр класса CDC, который когда-нибудь будет удалён, но в нём хранится результат ::GetDC , поэтому парный вызов нужен ::ReleaseDC, а не ::DeleteDC.
Обратите внимание, возвращается указатель на CDC. Поэтому выделенное — неверно. Вы же не пытаетесь запихнуть CDC* в умный указатель? Впрочем, если пытаетесь, передайте ему deleter вида ReleaseDC.