M
Okay, anders.
Ich hab den Rotationscode jetzt so gelassen, wie er ursprünglich war.
Aufgerufen wird das Ganze jetzt einfach so:
CString szFilename("res\\arrow_white.bmp");
HBITMAP hsrcbmp = (HBITMAP)LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
CBitmap bmp;
HBITMAP dstbmp = aarot::rotate(hsrcbmp, -m_dHeadingFromAUV, NULL, 0xFFFFFF, false);
bmp.Attach(dstbmp);
//bmp.Attach(hsrcbmp);
CClientDC dc(this);
CDC bmDC;
bmDC.CreateCompatibleDC(&dc);
CBitmap *pOldbmp = bmDC.SelectObject(&bmp);
BITMAP bi;
bmp.GetBitmap(&bi);
dc.BitBlt(x,y,bi.bmWidth,bi.bmHeight,&bmDC,0,0,MERGEPAINT);
m_oldX = x;
m_oldY = y;
bmDC.SelectObject(pOldbmp);
Jetzt ist es aber - wie bereits oben erwähnt - so, dass langsam immer mehr Speicher belegt wird. Der zählt in 4K Schritten hoch. Und irgendwann - manchmal erst nach ner halben Stunde - ist Feierabend und das Programm stürzt ab, was natürlich nicht sein darf. Wenn man son AUV vorführt und irgendwann bestimmte Leute nicht mehr sehen, wo das Fahrzeug ist, kommt das n bisschen schlecht.
Hat irgendwer ne einfache Lösung für dieses Speicherproblem?
Irgendwas, wo ich nicht das ganze Rad neu erfinden muss? Weil dafür hab ich definitiv zu wenig Ahnung von C++
Soll ich den Code der Rotationsfunktionen nochmal posten, wie er jetzt aussieht?
Danke & Gruß
meph