很抱歉我一直在问这些问题。无论如何,我的问题是我是否正确地将值转换为字符串?(不是unincode字符串)。
const
address:dword=$0057B568;
var
a:string;
len,i:dword;
begin
len:=0;
repeat
inc(len);
until ((pbyte(address+len)^=0));//and(pbyte(address+1)^=0));(for unincode)
for I:=0 to len do
a:=a+chr(pbyte(address+I)^);
//stringreplace(a,#0,'',[rfreplaceall,rfignorecase]);
MessageBox(0,pchar(a),'',0);
end.
1条答案
按热度按时间kzmpq1sx1#
不,这是不正确的。代码偏离了一个字节。首先,它通过忽略第一个字节来假设字符串至少有一个字符长。接下来,它复制了一个额外的字节。您的代码可以大大简化: