Gdi+ drawImage zugriffsverweigerung



  • hallo! bin neu hier und habe gleich mal eine frage an jemanden der sich gut mit gdi+ auskennt.
    danke schon mal für die antworten.

    hier mein code(soll mit double buffering auf desktop zeichnen):

    DWORD pdwGdiStartup;            
    GdiplusStartupInput GdiStartupInp;
    
    Graphics *current_graphic=new Graphics(GetWindowDC(GetDesktopWindow()));
    
    GdiplusStartup(&>pdwGdiStartup, &GdiStartupInp, NULL);
    
    Bitmap *doubleBuffering=new Bitmap(800,600);
    Graphics *graphic=Graphics::FromImage(doubleBuffering);
    
    graphic->DrawLine(new Pen(Color(255,0,0)),0,0,200,300);
    
    current_graphic->DrawImage(doubleBuffering,0,0,800,600);  //hier bei debugging zugriffsverletzung
    

    Die genaue fehlerbeschreibung lautet:
    Unbehandelte Ausnahme bei 0x00ca3eeb in Desktop2DTest.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.

    Danke schon im voraus!



  • Ich würde erstmal GdiplusStartup() ganz am Anfang aufrufen und nicht nachdem mit GDI+ schon arbeitest, vllt. ist current_graphic daher schon gar nicht gültig.

    btw: Das hier sieht mir ungünstig aus - Wie willst du hier den Pen wieder freigeben?

    graphic->DrawLine(new Pen(Color(255,0,0)),0,0,200,300);
    


  • ok danke für die antwort auf das bin ich schon gekommen
    habs jetzt gelöst. das problem lag daran das ich auf den desktop zeichnen wollte
    hab mir jetzt ein window gemacht das fullscreen ist.

    war ja nicht das ganze projekt das hier^^ 👍 👍 👍


Anmelden zum Antworten