Hm, du hast ja sicher schon etwas mehr damit gemacht, als dieser Beispiel-Code zeigt.
Aber da weder in D2D1CreateDeviceContext noch in D2D1CreateFactory der gewünschte Debug-Level gesetzt wird, muss ich fragen:
Hast du den
Direct 2D Debug Layer installiert?
In meinen Augen unverzichtbar, wenn man der
API entwickelt.
Den Debug-Level auf
Information gestellt und schon kriegt man alle Fehler aufgezeigt.
Anhand deines Codes könnte man beispielsweise die Vermutung anstellen, dass du Ressourcen mit deiner Instanz gD2DFactory erstellt hast und versuchst diese mit deinen DeviceContext aus D2D1CreateDeviceContext zu kombinieren.
Das ist nicht erlaubt, da diese Funktion zusammen mit den Context auch immer ein neues Device und Factory erstellt.
Siehe auch:
Zitat von
MSDN:
Wo zeigt denn der Callstack hin, wenn die Zugriffsverletztung kommt?
Sehr nervig ist es, wenn irgendwo tief unten im Grafikkartenspeicher irgendwas passiert.
Wenn einen da die Meldungen des Debug-Layers nicht weiterhelfen, kann das in eine ganz schöne Sucherei ausarten.