对不起我一直在问的所有这些问题。不管怎么说,我的问题是 我正确地将值转换为字符串吗?(不是非字符串字符串)。
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.
答案 0 :(得分:8)
不,这不对。代码关闭了一个字节。首先,它通过忽略第一个字节来假定字符串至少有一个字符长。接下来,它复制一个额外的字节。您的代码可以大大简化:
a := PAnsiChar(address);