xorking 发表于 2011-3-8 11:15:48

请教一下ReadProcessMemory返回值的问题

"ReadProcessMemory", _
                                                "ptr", $Handle, _
                                                "dword", $Address, _
                                                "ptr", DllStructGetPtr($Struct), _
                                                "dword", DllStructGetSize($Struct), _
                                                "dword*", 0)

$Struct 是 DllStructCreate的char

问题是,,我在设定大小为char或者更短,返回的值长度没问题,但是长度在char以上..就没法返回更多的字节了..总是固定返回9个字节..是为什么?

pusofalse 发表于 2011-3-8 21:05:50

字符串都是以NULL字符结尾的,否则就不叫字符串了,一遇到NULL字符,其后的数据就截断了。

xorking 发表于 2011-3-8 23:54:52

可是...获取的字符串都是从中截断了....没道理啊...
我char
收到的数据和实际应该收到的数据如下:
"物品栏已" ---"物品栏已经满了"
"你不能在非渔" --"你不能在非渔区钓鱼"
"水太浅"--"水太浅了"
"不能在移动中实施" --"不能在移动中实施该动作"

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

6个字以上的能切掉3个.四个以下的能切掉1个...

ceoguang 发表于 2011-3-9 23:11:38


这是UNICODE字符
应该是使用WCHAR
另外应该要加上终止符.
页: [1]
查看完整版本: 请教一下ReadProcessMemory返回值的问题