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 :
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 System::Windows::Forms::SendKeys::SendWait("+{PRTSC}"); pictureBox1->Image = safe_cast<Bitmap^>(Clipboard::GetDataObject()->GetData("Bitmap"));
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 ,
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; }
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 ,
Partager