Bonjour à tous ,
Voilà, je suis débutant et je travaille sur un projet avec les winforms en c++/cli ,
Je cherche à afficher une capture d'écran dans un(e) pictureBox, pour cela , j'utilise le code trouvé sur la faq de developpez.com :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
System::Windows::Forms::SendKeys::SendWait("+{PRTSC}");
pictureBox1->Image = safe_cast<Bitmap^>(Clipboard::GetDataObject()->GetData("Bitmap"));
Le hic , c'est que lorsque je souhaite par exemple mettre ce code dans une boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
public : Bitmap^ screen;
.....
 for(int i=0;i<100;i++){
System::Windows::Forms::SendKeys::SendWait("+{PRTSC}");
screen=safe_cast<Bitmap^>(Clipboard::GetDataObject()->GetData("Bitmap"));
pictureBox1->Image=screen;
			 }
Là je vois la mémoire qu'utilise le programme augmente de manière très inquiétante, ca ne le fait pas planter mais bon c'est génant ,

Ma question est la suivante: comment cela se fait que ayant déclarer une seule fois le Bitmap qui va "recevoir" la capture d'écran (ici screen) la mémoire utilisé continue à augmenter ?
Sinon, ne dois je pas faire une libération de ressource quelque part ?

Merci à tous ,