当前位置:编程学习 > Delphi >>

delphi 内存写字符串问题(急)。。。。

我用如下代码把一个字符串写入一个进程内存 var txt:PWideChar; WriteCount: DWORD; HPRo: Cardinal; begin txt:= '问世间,情为何物,直叫人生死相许'; Threadd:=VirtualAllocEx(HPro, nil, 256, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(HPro,Threadd,txt, Length(txt) * 2, WriteCount); end; 但那个进程只是别Ascii格式的字符串 而delphi 用上述代码写入内存的字符串是unicode的,郁闷,请高手给指点指点,怎么转换一下或给个其他方法。。。。
答案:把txt定义为PAnsiChar,即为ANSI风格,你说的“Ascii格式”不准确,要是严格的ASCII,则只能是英文,中文根本不行;Length(txt)不需要*2,完整如下:
var
    txt:PAnsiChar;
    WriteCount: DWORD;
    HPRo: Cardinal;
begin
    txt:= '问世间,情为何物,直叫人生死相许';
    Threadd:=VirtualAllocEx(HPro, nil, 256, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    WriteProcessMemory(HPro,Threadd,txt, Length(txt), WriteCount);
end;

上一个:如何用Delphi做出立体字
下一个:delphi 编程报错?什么意思?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,