Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème saturation mémoire avec screenshot [ Archives / Au secours ] (sidhannowe)

lundi 4 juillet 2005 à 01:46:23 | Problème saturation mémoire avec screenshot

sidhannowe

Bonjour,

Je réalise un screenshot régulièrement (ttes les 500ms) grace à un timer, le code qui génère le screenshot est le suivant:

 HWND pWnd = GetDesktopWindow();
 HBITMAP bitmap;
 HDC dc = GetWindowDC(pWnd);
 HDC hdc;
 hdc=CreateCompatibleDC(dc);

 int ScreenWidth = GetDeviceCaps(dc, HORZRES);
 int ScreenHeight = GetDeviceCaps(dc, VERTRES);

 bitmap=CreateCompatibleBitmap(dc, ScreenWidth, ScreenHeight);

 SelectObject(hdc,bitmap);
 BitBlt(hdc, 0, 0, ScreenWidth,ScreenHeight, dc, 0, 0, SRCCOPY);

Mon problème est que visiblement la mémoire occupée par le programme augmente de manière constante et que au bout d'environ 1 min, le screenshot ne s'effectue plus (visiblement l'erreur se trouve dans la création des DC). Je suis sur que c'est cette partie du programme qui pause problème. Qqun a une idée ?

Merci pour votre aide.


lundi 4 juillet 2005 à 01:47:16 | Re : Problème saturation mémoire avec screenshot

sidhannowe

J'ai oublié de noter les deux deletedc:

DeleteDC(hdc);
DeleteDC(dc);

Meme avec eux ca n'arrange pas le problème.


lundi 4 juillet 2005 à 08:08:06 | Re : Problème saturation mémoire avec screenshot

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
DeleteObject(bitmap); aussi

lundi 4 juillet 2005 à 12:44:13 | Re : Problème saturation mémoire avec screenshot

sidhannowe

Ok merci ca à l'air d'etre ca, je n'ai visiblement plus de problème de screenshot ni de mémoire sauf que ca augmente encore mais très légèrement (ce que je trouve pas normal). Normalement lorsque la fonction est terminée ca libère la mémoire automatiquement de ttes les variables de la fonction non ?

lundi 4 juillet 2005 à 20:18:32 | Re : Problème saturation mémoire avec screenshot

vecchio56

Administrateur CodeS-SourceS
Bien sur que non, comment la mémoire pourrait elle être libérée automatiquement? Un HBITMAP est juste un pointeur vers une zone mémoire, c'est celle ci que tu libères en utilisant DeleteObject



Cette discussion est classé dans : problème, hdc, mémoire, dc, screenshot


Répondre à ce message

Sujets en rapport avec ce message

Sélection d'une bitmap dans un DC [ par vecchio56 ] Bonjour a tousJ'explique mon problème:Je charge une bitmap 8 bits à partir d'un fichier (je n'utilise pas LoadBitmap, qui crée une bitmap 32 bits en m problème espace mémoire [ par borgeomi ] borgeomibonjouuuuuuur !!!!!encore une question stupide d'un programmeur cobol MVSsous VISUAL C ++ 6J'ai crée une classe Personne du stylePersonne Tab Fuite Mémoire + Différence DevC++ Vs Visual C++ [ par Joky ] Hep salut les gens :)Donc plusieurs problème aujourd'hui qui m'inquiète :)Nous aborderons dans un premier temps, un problème d'optimisation puis par l Problème mémoire Visual C++ 2005, (pourtant il n'y a pas de mémoire "dynamiquement allloué") [ par Sim 2005 ] J'ai un programme qui utilise beaucoup plus de mémoire qu'il ne le devrait. Toutes les variables sont statiques, il ne peut s'agir d'une fuite de mémo Problème screenshot via service NT [ par Valty ] Bonjour, Après de (nombreux) tests, je n'ai pas réussi à réaliser une capture d'écran (screenshot) du desktop courant à partir d'un service NT. PS: HDC vers HBITMAP [ par julien_boss ] Bonjour,j'ai un DC, contenant un dessin..., je souhaite pouvoir transférer son contenu dans un bitmap de type HBITMAP, afin ensuite de la mettre dans MySQL API C, libération de mémoire tampon... [ par Guizmo95 ] Bonjour,je développe un programme en C avec l'API C pour MySQL, et mon mon problème est le suivant, je lance le programme et je regarde la mémoire qu' pr d'objet GDI qui augmente, help [ par gege1024 ] CPaintDC hdc(this);HBITMAP bit;BITMAP bitmap;CRect rect;GetClientRect(&rect);  bit= (HBITMAP) LoadImage (NULL,fic_img_abs,IMAGE_BITMAP,0,0,LR_DEFAULTS Lenteur 3 [ par SAKingdom ] Pour résumé, j'ai fait une petite DLL graphique 2D et j'avais (et j'ai toujours) un problème écransant de lenteur. J'utilisait SetPixel (j'utilise tou Problème avec les regions (redessinement) [ par waganono ] Bonjour à tous En fait je souhaite creer une "dialog" aux coins arrondis avec des boutons arrondis (bitmaps). - Pour la dialog, je n'ai aucun problè


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.