日期:2014-05-20  浏览次数:21198 次

使用GlobalMemoryStatus获得物理内存大小时出错
[DllImport( "kernel32 ")]
                public   static   extern   void   GlobalMemoryStatus(MEMORYSTATUS   lpBuffer);

                public   struct   MEMORYSTATUS
                {
                        public   uint   dwLength;
                        public   uint   dwMemoryLoad;
                        public   uint   dwTotalPhys;
                        public   uint   dwAvailPhys;
                        public   uint   dwTotalPageFile;
                        public   uint   dwAvailPageFile;
                        public   uint   dwTotalVirtual;
                        public   uint   dwAvailVirtual;
                }


                        MEMORYSTATUS   MemStat   =   new   MEMORYSTATUS();
                        GlobalMemoryStatus(MemStat);

                        MessageBox.Show(MemStat.dwTotalPhys.ToString()   +   "\n ");

运行时得到异常信息   System.AccessViolationException:   尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
请问这是怎么回事呢?

------解决方案--------------------
这个东西肯定没干好事


PS:为啥你不用WMI查询呢楼主?