Как разблокировать заблокированное растровое изображение

Я хочу разблокировать заблокированную карту ID2D1Bitmap, которую я пробовал m_pBitmap1-> Release (); но это не похоже на работу

hr = m_pBitmap1-> CopyFromRenderTarget (nullptr, m_pRenderTarget2, nullptr); выдает ошибку нарушения доступа:

«Необработанное исключение в 0x00fb2a46 в dent_detection_sys.exe: 0xC0000005: расположение чтения нарушения доступа 0x00000024».

WICRect rcLock = { 0, 0, sc_bitmapWidth , sc_bitmapHeight };
IWICBitmapLock *pILock=NULL;
hr =pWICBitmap->Lock(&rcLock, WICBitmapLockWrite, &pILock);hr=pRT->CreateSharedBitmap(
IID_IWICBitmapLock,
static_cast<void *>(pILock),
&bp2,
&m_pBitmap1
);hr=m_pBitmap1->Release();

hr=m_pBitmap1->CopyFromRenderTarget(nullptr, m_pRenderTarget2, nullptr);

0

Решение

Чтобы разблокировать растровое изображение WIC, отпустите IWICBitmapLock:

pILock->Release();

1

Другие решения

Вы должны выпускать m_pBitmap1 только тогда, когда вы больше не хотите его использовать.

hr=m_pBitmap1->CopyFromRenderTarget(nullptr, m_pRenderTarget2, nullptr);
hr=m_pBitmap1->Release();
0

По вопросам рекламы [email protected]