delphi7 内存取值问题 无人能解!难题 高手支招

320039002E0039003600000000000000对应的是29.96但是ReadProcessMemory读出来的只是【2】{9.96}取不出来。问:Rea... 32 00 39 00 2E 00 39 00 36 00 00 00 00 00 00 00
对应的是29.96

但是ReadProcessMemory读出来的只是【2】 {9.96} 取不出来。
问:ReadProcessMemory 人说{字节是 00 文本被截断}后的自然也就读取不了了。

怎么读取完整的。
展开
 我来答
RedBaronVIP
2012-12-29 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:243万
展开全部
1、我不是楼主您所谓的“高手”,但我觉得这个问题简单地跟个“一”,实有WR大家智商之嫌。
2、这段字符串显然是用Unicode双字节表示的,你用AnsiString读到00就认为是结尾了。
3、解决很简单,用宽字符读取就行了(不要告诉我您没用过)。假设buffer是ReadProcessMemory结果的缓冲:
var
p: PWideChar;
begin
//如果你的buffer不是指针而是数组的话,将下面一句改成p := @buffer;
p := buffer;
ShowMessage(p);
end;
4、你可以用下面的程序验证:
const
buffer: array[0..15] of Byte = ($32, $00, $39, $00, $2E, $00, $39, $00, $36, $00,
$00, $00, $00, $00, $00, $00);
procedure TForm1.Button1Click(Sender: TObject);
var
p: PWideChar;
begin
p := @buffer;
ShowMessage(p);
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式