Hola amigos , es mi primer mensaje en el foro :D , quisiera aprender a como programar esto que quiero hacer en c++ , quiero hacer un programa que me muestre la informacion de la memoria ram .
ejemplo: que me diga si es ddr 2 o ddr 1 , cuanta memoria fisica tengo instalada y cosas asi ... es para un pequeño trabajo de la universidad :xD , y quiero saber por donde empezar , el profesor que nos da clases , nos a dado como hacer los ciclos , los tipos de datos y nos a mandado esto pero no tengo ni idea por donde empezar . alguna guia que me puedan dar para ir empezando a elaborarlo por favor!
disculpen las molestias ocacionadas amigos, saludos y de antemano muchas gracias a todos los que respondan . suerte
pd: algo asi como lo que hace el everest que te da la inforamcion del hardware , pero yo solo lo quiero para la memoria ram.
Lo primero que me viene a la mente es usar la API de Windows, pero si solo has dado ciclos y tipos de datos...todo un asesino tu profe.
como que eres adivino jajaja si es todo un asessino , bueno se ve que el profesor sabe de que sabe y vale la pena aprender mucho de el , pero como que nos deja muy solos a la hora de resolver los ejercicios. bueno pero ya que dices eso me asusta parece grave lo que pido !
no tendras alguna guia por alli de ese api de windows o algo para empezar a leer , para ve r si saco algo para empezar, bueno decirte que lo mando hace unos dias para entregarlo mas o menos dentro de 3 meses , pero quiero empezar desde ya a conocer la cosa por que me imagino que si a mayor tiempo la cosa debe ser dificil .
si hemos visto muy poca clases , yo me imagino que el hace eso como para que nosotros estudiemos aparte de lo que aprendemos en la uni . saludos y muchas gracias por responder almenos ya me diste un buen dato por donde comenzar .
lo que necesitaria ahora serian como guias o algun codigo que se paresca para ir a estudiarlo y hecer esto . ^^ saludos y gracias
Esta es la máxima información que puedes obtener sobre la memoria utilizando la API de Windows:
#include <windows.h>
#include <stdio.h>
// Use to convert bytes to KB
#define DIV 1024
int main(int argc, char * argv[])
{
MEMORYSTATUSEX statex;
statex.dwLength = sizeof (statex);
GlobalMemoryStatusEx(&statex);
printf("There is %ld percent of memory in use.\n", statex.dwMemoryLoad);
printf("There are %d total Kbytes of physical memory.\n", statex.ullTotalPhys/DIV);
printf("There are %d free Kbytes of physical memory.\n", statex.ullAvailPhys/DIV);
printf("There are %d total Kbytes of paging file.\n", statex.ullTotalPageFile/DIV);
printf("There are %4d free Kbytes of paging file.\n", statex.ullAvailPageFile/DIV);
printf("There are %d total Kbytes of virtual memory.\n", statex.ullTotalVirtual/DIV);
printf("There are %d free Kbytes of virtual memory.\n", statex.ullAvailVirtual/DIV);
// Show the amount of extended memory available.
printf("There are %d free Kbytes of extended memory.\n", statex.ullAvailExtendedVirtual/DIV);
getc(stdin);
return 0;
}
También existe la función GlobalMemoryStatus, pero si lees la información en msdn sobre ella, esta función devuelve información errónea si en el equipo hay más de 4 GB de RAM.
Para saber la marca de la memoria, frecuencia, etc.. vas a tener que emplear algún driver y saber algo de ensamblador.
Saludos.
muchisimas gracias amigo voy a probar el codigo y tambien voy a buscar en lo que me acabas de escribir para ver que mas saco , saludos y nuevo muchisimas gracias.