RE:Solución usando Win32
Publicado por
s (1 intervención) el 18/06/2004 15:41:02
Hola.
Tengo una solución para saber la memoria libre usando windows de 32 bits.
Creas una variable como la de abajo:
MEMORYSTATUS meminfo;
ahora mandas llamar a la siguiente función:
GlobalMemoryStatus(&meminfo);
(Por cierto, no olvides incluir la cabecera <windows.h>)
La estructura MEMORYSTATUS tiene los siguientes elementos:
typedef struct _MEMORYSTATUS { // mst
DWORD dwLength; // sizeof(MEMORYSTATUS)
DWORD dwMemoryLoad; // percent of memory in use
DWORD dwTotalPhys; // bytes of physical memory
DWORD dwAvailPhys; // free physical memory bytes
DWORD dwTotalPageFile; // bytes of paging file
DWORD dwAvailPageFile; // free bytes of paging file
DWORD dwTotalVirtual; // user bytes of address space
DWORD dwAvailVirtual; // free user bytes
} MEMORYSTATUS, *LPMEMORYSTATUS;
Como puedes notar (perdona el inglés, pero creo que son sencillos los terminos ) aparecen información relacionada con la memoria, en especial, la cantidad libre de la misma, tal como querias.
¿Problemas?. Depende. La función GlobalMemoryStatus(&meminfo) es una llamada al sistema operativo Windows. Lo cual quiere decir que tu compilador debe ser capaz de hacer este tipo de llamadas. El único compilador en que he probado esto es Visual C++ 6.0., aunque tal vez pueda funcionar en versiones anteriores.
Si estas desarrollando tu programa para MS-DOS o Linux, desafortunadamente no te puedo ayudar más. Cualquier duda con la función anterior, en el foro te pueden ayudar.
Saludos.