Bonjour,

J'ai développé une application toute simple qui fait simplement une écoute des communications UDP sur le port 15000 d'un pc et ouvre une boîte de dialogue qui n'affiche absoluement rien pour l'instant. Elle ne contient aucun composant, bref boite de dialogue complètement vide...

Et pourtant je lance l'appli et je me retrouve avec 3 Mo de mémoire utilisé d'apres le Gestionnaire de tâches de windows XP.

Est-ce que ça vient de Windows ? Existe-t-il des astuces de programmation pour libérer la mémoire ? Vu que c'est une appli qui va tout le temps tourner sur mon PC je voudrais qu'elle prenne le moins de place possible...

Voici le code que j'ai tapé pour mieux comprendre ...
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
#include "stdafx.h"
#include "ADSLNotice.h"
#include <winsock2.h>
 
#pragma comment(lib, "ws2_32.lib")
 
char buffer[1000];
 
INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
    WSADATA wsa;
    WSAStartup(MAKEWORD(2, 0), &wsa);
 
    SOCKET sock;
    SOCKADDR_IN sin;
 
    int port = 15000;
 
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = INADDR_ANY;
    sin.sin_port = htons(port);
 
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    bind(sock, (SOCKADDR*) &sin, sizeof(sin));
 
    int sinsize = sizeof(sin);
 
    while(1)
    {
        memset(buffer, 0, sizeof(buffer));
        recvfrom(sock, buffer, sizeof(buffer), 0, (SOCKADDR*) &sin, &sinsize);
        DialogBox(0, MAKEINTRESOURCE(IDD_MSG), GetDesktopWindow(), (DLGPROC)About);
    }
 
    return 0;
}
 
INT_PTR CALLBACK About(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch(uMsg) 
  {
  case WM_CLOSE:
      EndDialog(hDlg, 1);
      break;
  case WM_COMMAND :
      break;
  }
  return 0;
}
Merci d'avance à tous pour votre aide.