pchar如何赋值 本帖最后由 fbiboss 于 2013-05-21 14:53:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我们给字符指针申请内存主要是为了在 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; 跨进程的话分配内存用 GlobalAllocPtr 和 GlobalFreePtr 可以直接p:='fee';,D默认字符串PCHAR和字符数组可相互转化 sqlserver保存时报奇怪的错误 DELPHI解释器问题 高手来看,权限问题 关于Dbgrid的问题? 没有可用分了!怎么办? DbGridEh打印的问题!!分不够请说,,用过PrintDBGridEh1的请进!!!!! 如何用Sql 来更新记录集 啊?各位请帮忙! 千里之行,始于足下我是个初学者,有谁可以介绍些入门的ebook下载,万分感谢 delphi5编译dll为什么不能在PB中调用出错 如何获取其他windows窗口中选中的文字 使用Cookie登录 包含数字变量的sql查询怎么写 SOS
--------------------------------------------------------------------------------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;