首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

使用GlobalMemoryStatus获得物理内存大小时出错,该怎么解决

2012-01-28 
使用GlobalMemoryStatus获得物理内存大小时出错[DllImport( kernel32 )]publicstaticexternvoidGlobalMe

使用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查询呢楼主?

热点排行