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


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

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

 

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

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

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

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