Lire en anglais

Partager via


D1194 : Vidage dc exceptionnel

Il n’est pas valide d’appeler Flush ou EndDraw entre une paire GetDC/ReleaseDC.

 

Causes possibles

Lors de l’utilisation d’un rendertarget interopéré GDI, une application peut contrôler la propriété du contrôleur de domaine de la cible à l’aide de IGdiInteropRenderTarget::GetDC ou IGdiInteropRenderTarget::ReleaseDC. Toutefois, il n’est pas valide d’appeler ID2D1RenderTarget::Flush ou ID2D1RenderTarget::EndDraw tant que l’application contrôle le contrôleur de domaine. Flush et EndDraw peuvent provoquer un rendu sur la ressource cible, et Direct2D ne doit pas tenter de modifier la ressource en même temps que l’application.

Correctifs possibles

Pour résoudre ce message, vérifiez que l’application n’appelle pas ID2D1RenderTarget::Flush ou ID2D1RenderTarget::EndDraw alors qu’elle est propriétaire du contrôleur de domaine d’un IGdiInteropRenderTarget. Si possible, organisez l’application pour séparer son comportement de rendu Direct2D de son comportement GDI pour rendre la distinction de propriété dc plus claire.