В приложении MFC с использованием Direct2D У меня есть очень простой код:
// в CTOR:Нужно ли мне удалить этот объект?
EnableD2DSupport();
m_pBlackBrush = new CD2DSolidColorBrush(GetRenderTarget(), D2D1::ColorF(D2D1::ColorF::Black));
Теперь вопрос, я должен позвонить удалить на m_pBlackBrush? Если да, то где? Я попытался вызвать delete на нем в деструкторе, но я получаю сообщение об ошибке, сказанное, что есть нарушение доступа к записи. Кто-нибудь знает, должен ли я удалить эту кисть или просто оставить ее (что кажется довольно странной идеей)?
Уверенный, что вам нужно «удалить» этот объект, когда вы его создали, используя 'new', иначе вы будете иметь утечку памяти. –
Это зависит от того, как вы его используете. Насколько я помню, у MFC были странные идеи об объектной собственности, поэтому, например, если вы поместите эту кисть в контекст устройства, она может взять на себя ответственность. Извините, я не помню подробностей. –
@ πάνταῥεῖ Вы прочитали мое сообщение? Я пытался называть delete, но я получаю ошибку, поэтому я задаю этот вопрос здесь –