Handle verursacht Access Violation



  • Hallo

    in meinem Programm arbeite ich mit einem Handle zu einem Gerätekontext.
    Beispielhaft so:

    CDC *pdc = pView->GetDC();
    HDC hdc = pdc.m_hDC; :warning:
    

    An der markierten Stelle gibt es eine Access Violation wenn ich mehrmals die Funktion aufrufe oder ein neues Dokument erzeuge.
    Kann mir jemand sagen was ich falsch mache und wie ich die A.V. verhindern kann?
    Ich brauch das Handle übrigens zum initialisieren des zum Zeichnen mit GDI+ nötigen Graphics Objekts.
    Wär echt nett, wenn mir jemand helfen könnte!



  • pdc isn Zeiger!!
    also:
    pdc->m_hDC;



  • Oh ich habs falsch geschrieben, daran liegts nicht.

    Ich hab mittlerweile herausgefunden, dass die Access Violation beim initialisieren des Graphics Objekts entsteht (Graphics graphics(pdc->m_hDC)).
    Ich hab das auch schon mit pdc->Detach versucht und hab auch mit graphics.ReleaseHDC() das Handle wieder freigegeben, aber es gibt immer beim mehrmaligen aufrufen der Funkion und (oder) beim Erzeugen eines neuen Dokuments eine Access Violation 😡

    Was soll ich tun? 😮



  • Hast du GdiplusStartup verwedndet?



  • Hab ich benutzt!


Log in to reply