Поделиться через


D1194: Очистка выдающегося контроллера домена

Недопустимо вызывать Flush или EndDraw между парой GetDC/ReleaseDC.

 

Возможные причины

При использовании GDI interoperated rendertarget приложение может контролировать владение контроллером домена целевого объекта с помощью IGdiInteropRenderTarget::GetDC или IGdiInteropRenderTarget::ReleaseDC. Однако недействителен вызов ID2D1RenderTarget::Flush или ID2D1RenderTarget::EndDraw, а приложение управляет контроллером домена. Flush и EndDraw могут вызвать отрисовку на целевом ресурсе, и Direct2D не должна пытаться изменить ресурс одновременно с приложением.

Возможные исправления

Чтобы устранить это сообщение, убедитесь, что приложение не вызывает ID2D1RenderTarget::Flush или ID2D1RenderTarget::EndDraw, пока оно имеет право владения контроллером домена IGdiInteropRenderTarget. Если это возможно, упорядочение приложения для разделения поведения отрисовки Direct2D от поведения GDI, чтобы сделать различие владения контроллером домена более понятным.