找回密码
 加入
搜索
查看: 2391|回复: 3

[系统综合] 请教一下ReadProcessMemory返回值的问题

[复制链接]
发表于 2011-3-8 11:15:48 | 显示全部楼层 |阅读模式
"ReadProcessMemory", _
                                                "ptr", $Handle, _
                                                "dword", $Address, _
                                                "ptr", DllStructGetPtr($Struct), _
                                                "dword", DllStructGetSize($Struct), _
                                                "dword*", 0)

$Struct 是 DllStructCreate的char[22]

问题是,,我在设定大小为char[18]或者更短,返回的值长度没问题,但是长度在char[18]以上..就没法返回更多的字节了..总是固定返回9个字节..是为什么?
发表于 2011-3-8 21:05:50 | 显示全部楼层
字符串都是以NULL字符结尾的,否则就不叫字符串了,一遇到NULL字符,其后的数据就截断了。
 楼主| 发表于 2011-3-8 23:54:52 | 显示全部楼层
可是...获取的字符串都是从中截断了....没道理啊...
我char[200]
收到的数据和实际应该收到的数据如下:
"物品栏已" ---"物品栏已经满了"
"你不能在非渔" --"你不能在非渔区钓鱼"
"水太浅"--"水太浅了"
"不能在移动中实施" --"不能在移动中实施该动作"

同样是char[200],收到的字符串长度居然会不同,又好像....长的都截掉了后面三个字..短的切一个...

6个字以上的能切掉3个.四个以下的能切掉1个...
发表于 2011-3-9 23:11:38 | 显示全部楼层

这是UNICODE字符
应该是使用WCHAR
另外应该要加上终止符.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 12:44 , Processed in 0.073114 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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