C++ GDI+ Objects Memory leak/too many objects? -


ive been making c++ drawing program , have part im drawing using gdi+ inside function need declare graphics object every time call function.. wrong , causes leak somewhere after calls gets slower , stops drawing ,as expected.

im trying clear objects every time finishes drawing doesnt seem solve issue. thought maybe pen objects part of issue insight helpful code:

void function() {     dword pdwgdustartup;     gdiplusstartupinput gdistartupinp;     gdiplusstartup(&pdwgdustartup, &gdistartupinp, null);     pen pnpen_blue(gdiplus::color(255, 0, 0, 255), 2.0f);     pen pnpen_green(gdiplus::color(255, 255, 0, 255), 2.0f);       lpcstr lgamewindow = "mywindow";     hwnd hgamewindow = findwindow(null, lgamewindow);     graphics graphics(getdc(hgamewindow)); (int n=10; n>0; n--)     graphics.drawline(&pnpen_green,0, 0, 0, n);     gdiplusshutdown(pdwgdustartup);     graphics.flush(); } 

thanks alot!

edit: added release dc did not anything!

dword pdwgdustartup; gdiplusstartupinput gdistartupinp; gdiplusstartup(&pdwgdustartup, &gdistartupinp, null); pen pnpen_blue(gdiplus::color(255, 0, 0, 255), 2.0f); pen pnpen_green(gdiplus::color(255, 255, 0, 255), 2.0f);   lpcstr lgamewindow = "mywindow"; hwnd hgamewindow = findwindow(null, lgamewindow); hdc gdc = getdc(hgamewindow); graphics graphics(gdc); releasedc(hgamewindow, gdc); gdiplusshutdown(pdwgdustartup); graphics.flush(); 

my gdi objects still rises 10,000!

gdiplusshutdown must called after gdi+ objects removed. in code pen , graphics destructors called after gdiplusshutdown, when objects go out of scope.


Comments