[ayuda] programa hecho en c++ que me muestre la informacion de la memoria ram

Iniciado por olvisdevalencia, 2 Mayo 2011, 09:42 AM

0 Miembros y 1 Visitante están viendo este tema.

olvisdevalencia

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.

Slava_TZD

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.


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.

olvisdevalencia

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

Khronos14

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.

olvisdevalencia

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.