#include <string>
#include <stdio.h>
#include <iostream.h>
long int memory;
  MEMORYSTATUS  memory;
  int main(void)
{
  
memory.dwLength=sizeof(memory);   
GlobalMemoryStatus(&memory);
}应该怎样改呀?能帮我把代码补全吗?总时提示错误,谢谢您的回答

解决方案 »

  1.   

    代码没有问题,你没有#include <windows.h> 另外,
    dwLength 
    Size, in bytes, of the MEMORYSTATUS data structure. You do not need to set this member before calling the GlobalMemoryStatus function; the function sets it. 完整例子://  Sample output:
    //  c:\>global
    //  The MemoryStatus structure is 32 bytes long.
    //  It should be 32.
    //  78 percent of memory is in use.
    //  There are   65076 total Kbytes of physical memory.
    //  There are   13756 free Kbytes of physical memory.
    //  There are  150960 total Kbytes of paging file.
    //  There are   87816 free Kbytes of paging file.
    //  There are  1fff80 total Kbytes of virtual memory.
    //  There are  1fe770 free Kbytes of virtual memory.#include <windows.h>// Use to change the divisor from Kb to Mb.#define DIV 1024
    // #define DIV 1char *divisor = "K";
    // char *divisor = "";// Handle the width of the field in which to print numbers this way to
    // make changes easier. The asterisk in the print format specifier
    // "%*ld" takes an int from the argument list, and uses it to pad and
    // right-justify the number being formatted.
    #define WIDTH 7void main(int argc, char *argv[])
    {
      MEMORYSTATUS stat;  GlobalMemoryStatus (&stat);  printf ("The MemoryStatus structure is %ld bytes long.\n",
              stat.dwLength);
      printf ("It should be %d.\n", sizeof (stat));
      printf ("%ld percent of memory is in use.\n",
              stat.dwMemoryLoad);
      printf ("There are %*ld total %sbytes of physical memory.\n",
              WIDTH, stat.dwTotalPhys/DIV, divisor);
      printf ("There are %*ld free %sbytes of physical memory.\n",
              WIDTH, stat.dwAvailPhys/DIV, divisor);
      printf ("There are %*ld total %sbytes of paging file.\n",
              WIDTH, stat.dwTotalPageFile/DIV, divisor);
      printf ("There are %*ld free %sbytes of paging file.\n",
              WIDTH, stat.dwAvailPageFile/DIV, divisor);
      printf ("There are %*lx total %sbytes of virtual memory.\n",
              WIDTH, stat.dwTotalVirtual/DIV, divisor);
      printf ("There are %*lx free %sbytes of virtual memory.\n",
              WIDTH, stat.dwAvailVirtual/DIV, divisor);
    }