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 编程报错?什么意思?