首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

pchar怎么赋值

2013-06-26 
pchar如何赋值本帖最后由 fbiboss 于 2013-05-21 14:53:58 编辑不能直接p:fff,是要用Strcopy(p,fff)

pchar如何赋值
本帖最后由 fbiboss 于 2013-05-21 14:53:58 编辑
不能直接p:='fff';,是要用Strcopy(p,'fff');这样的吧?

但是如果是要读内存的,要怎么办啊?

这样写会有问题吗?
p:PChar;

allocmem(p,30);
ReadProcessMemory(phandle,Pointer(baseaddr),p,30,tmpNum);
freemem(p);
[解决办法]
我们给字符指针申请内存主要是为了在 API 中接受数据, 如果我们要直接赋给常量值, 系统会自动分配内存的, 譬如:


--------------------------------------------

var
  p: PChar;
begin
  p := '万一的 Delphi 博客';
  ShowMessage(p); {万一的 Delphi 博客}
end;
--------------------------------------------


当然我们也可以用这种办法申请内存, 就是笨了点, 譬如:


--------------------------------------------

//获取系统目录
var
  p: PChar;
begin
  p := PChar(StringOfChar(Char(0), 256)); {反复一个空字符 256 次成一个字符串, 然后转为 PChar}
  GetSystemDirectory(p, StrBufSize(p));
  ShowMessage(p); {C:\WINDOWS\system32}
end;
--------------------------------------------


如果在 API 函数需要的字符指针是为了输入, 当然也不需要申请内存, 譬如:


--------------------------------------------

//设置窗口标题
var
  p: PChar;
begin
  p := '窗口新标题';
  SetWindowText(Handle, p);
end;

热点排行