Bonjour, j'ai fait un classe Screen qui charge un bitmap de l'image à l'écran, mais lorsque je fait une boucle contenant le constructeur et destructeur de cette classe, j'ai la ram qui se remplie. J'ai essayé de delete(scnBmpData) et delete(scnOct) mais ça fait cracher mon programme. Je suis débutant en programmation et ça fait 1 semaine que mon programme est bloqué à cause de ça. Si quelqu'un pouvait m'aider j'en serais reconaissant. Merci d'avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
screen::screen()
{  
  // Donne les dimensions de l'écran
  int x1, y1, x2, y2;
  x1  = GetSystemMetrics(SM_XVIRTUALSCREEN);
  y1  = GetSystemMetrics(SM_YVIRTUALSCREEN);
  x2  = GetSystemMetrics(SM_CXVIRTUALSCREEN);
  y2  = GetSystemMetrics(SM_CYVIRTUALSCREEN);
  this->w   = x2 - x1;
  this->h   = y2 - y1;
 
  // copie l'écran dans le bitmap
  this->hScreen = GetDC(NULL);
  this->hDC     = CreateCompatibleDC(hScreen);
  this->hBitmap = CreateCompatibleBitmap(hScreen, w, h);
  HGDIOBJ old_obj = SelectObject(hDC, hBitmap);
  BOOL    bRet    = BitBlt(hDC, 0, 0, w, h, hScreen, x1, y1, SRCCOPY);
 
  //Charge le bitmap dans le buffer
  this->scnBmp = new Gdiplus::Bitmap(hBitmap,NULL);
  Gdiplus::Rect rectScnBmp(0,0, w, h);
  this->scnBmpData = new Gdiplus::BitmapData;
  scnBmp->LockBits(&rectScnBmp, Gdiplus::ImageLockModeRead,
		   PixelFormat32bppARGB, scnBmpData);
  this ->scnOct = (byte*)(void*)scnBmpData->Scan0;
}
screen::~screen()
{
  scnBmp->UnlockBits(scnBmpData);
  DeleteDC(hDC);
  ReleaseDC(NULL, hScreen);
  DeleteObject(hBitmap);
  delete(scnBmpData);
}
//ma boucle qui fait monter la ram, mais qui marche quand même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 while(!pos.x && !pos.y)
  {
    screen monEcran;
    //pos = monEcran.findBmp(monbmp);
    monEcran.~screen();
    //if(pos.x && pos.y)
    //  cout << "trouvé en: (" << pos.x << ","<< pos.y << ")"<< endl;
  }
edit: j'ai trouvé (en fait non)