找回密码
 加入
搜索
查看: 16015|回复: 13

[BUG报告] _WinAPI_GlobalMemoryStatus

 火.. [复制链接]
发表于 2012-5-22 14:47:15 | 显示全部楼层 |阅读模式
winapi.au3中的函数:_WinAPI_GlobalMemoryStatus
代码:
#include <WinAPI.au3>
#include <array.au3>
Dim $mem
$mem = _WinAPI_GlobalMemoryStatus()
_ArrayDisplay($mem)


报错:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-22 14:52:06 | 显示全部楼层
回复 1# haijie1223


    报告'发'哥, 我这里正常, 能显示数组!
   XP sp3 + 3.3.7.15

评分

参与人数 1金钱 +30 收起 理由
haijie1223 + 30 谢谢反馈!

查看全部评分

发表于 2012-5-22 14:53:18 | 显示全部楼层
同LZ,,报错。。

评分

参与人数 1金钱 +30 收起 理由
haijie1223 + 30 感谢反馈!

查看全部评分

发表于 2012-5-22 14:55:57 | 显示全部楼层
正常 3.3.9.4

评分

参与人数 1金钱 +30 收起 理由
haijie1223 + 30 感谢反馈!

查看全部评分

发表于 2012-5-22 14:58:49 | 显示全部楼层
#include <array.au3>
Dim $mem = MemGetStats()/1024
_ArrayDisplay($mem)

评分

参与人数 1金钱 +4 收起 理由
haijie1223 + 4 数组后可以/1024?

查看全部评分

发表于 2012-5-22 14:59:30 | 显示全部楼层
win7 32bit+AutoIt3.3.9.0也出错

评分

参与人数 1金钱 +10 收起 理由
haijie1223 + 10 谢谢反馈

查看全部评分

发表于 2012-5-22 15:20:39 | 显示全部楼层
楼主或许试试其他版

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-22 15:22:41 | 显示全部楼层
winapi.au3中的函数:_WinAPI_GlobalMemoryStatus
代码:

报错:
haijie1223 发表于 2012-5-22 14:47


Win8 + 3.3.9.0-1  既不报错,也不显示数组和控制台信息!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
haijie1223 + 10 谢谢反馈!

查看全部评分

发表于 2012-5-22 15:33:53 | 显示全部楼层
3.3.7.15正常。出错原因可以肯定是结构定义出错。看下这个函数内部使用的$tagMEMORYSTATUSEX 结构是否是如下定义:

Global Const $tagMEMORYSTATUSEX = "dword Length;dword MemoryLoad;" & _
                                "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & _
                                "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"

评分

参与人数 1金钱 +12 收起 理由
haijie1223 + 12 9#帖子,依然会报错。

查看全部评分

 楼主| 发表于 2012-5-22 16:12:36 | 显示全部楼层
回复 9# pusofalse


   
#include <array.au3>
Global Const $tagMEMORYSTATUSEX = "dword Length;dword MemoryLoad;" & _
                "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & _
                "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"

Local $tMem = DllStructCreate($tagMEMORYSTATUSEX)
Local $iMem = DllStructGetSize($tMem)
DllStructSetData($tMem, 1, $iMem)
DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $tMem)
Local $aMem[7]
$aMem[0] = DllStructGetData($tMem, 2)
$aMem[1] = DllStructGetData($tMem, 3)
$aMem[2] = DllStructGetData($tMem, 4)
$aMem[3] = DllStructGetData($tMem, 5)
$aMem[4] = DllStructGetData($tMem, 6)
$aMem[5] = DllStructGetData($tMem, 7)
$aMem[6] = DllStructGetData($tMem, 8)
_ArrayDisplay($aMem)
发表于 2012-5-22 17:03:31 | 显示全部楼层
回复 10# haijie1223


   结构没错,参数传递错了。 将第9行改为:
DllCall("Kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", DllStructGetPtr($tMem))

评分

参与人数 2贡献 +7 收起 理由
haijie1223 + 5 so cool
user3000 + 2 酷, 我就看不明白这数据结构

查看全部评分

发表于 2012-5-25 19:42:12 | 显示全部楼层
回复 11# pusofalse


    真可惜  我的没错 - -!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-27 09:44:23 | 显示全部楼层
回复 1# haijie1223
报告:win7 32bit, 3.3.7.15没有报错,数组显示正常,就是不知道显示的是啥意思?
发表于 2012-5-28 14:09:53 | 显示全部楼层
xp3+at3最新版本的应该没错
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 12:09 , Processed in 0.097233 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表