string 与 PChar
2004-12-01 14:39
316 查看
来自Delphi Help 关键字String to PChar conversions
长字符串转换到PChar不是自动的。他们之间的不同点导致他们的转换存在问题。
1,长字符串是引用计数的,而PChar不是
2,赋值给长字符串是数据的拷贝,而PChar是指向数据的指针。
3,长字符串是空止符结尾,并包含有字符串的长度。而PChar是简单的空止符结尾。( 空止符结尾指以#0结尾)
procedure my_func(x: string);
begin
some_proc(PChar(x)); //参照第一条,这么做自己负责x的生存期
end;
function title(n: Integer): PChar;
var
s: string;
begin
s := Format('title - %d',
);
Result := PChar(s); // 参照第2条,不能这么做
end;
长字符串转换到PChar不是自动的。他们之间的不同点导致他们的转换存在问题。
1,长字符串是引用计数的,而PChar不是
2,赋值给长字符串是数据的拷贝,而PChar是指向数据的指针。
3,长字符串是空止符结尾,并包含有字符串的长度。而PChar是简单的空止符结尾。( 空止符结尾指以#0结尾)
procedure my_func(x: string);
begin
some_proc(PChar(x)); //参照第一条,这么做自己负责x的生存期
end;
function title(n: Integer): PChar;
var
s: string;
begin
s := Format('title - %d',
);
Result := PChar(s); // 参照第2条,不能这么做
end;
相关文章推荐
- System.Runtime.InteropServices.COMException(0x8004020F): The server rejected one or more recipient addresses.
- 学车笑谈
- 语句频度问题和算法得时间复杂度。
- 什么是AOP(转贴)
- 去掉快捷方式图标上的箭头
- Spring让Hibernate使用者受益良多
- Eclipse 配置资源
- C++程序优化
- 摩托罗拉的自我承诺:什么是真正的管理? (zt)
- 如何用Perl来获取主机地址?
- Unix awk使用手册
- 验证码的程序及原理
- VC学习资料收集(7):关于《连连看》的算法
- hymn新闻系统(后台程序)jsp版
- 联通手机卡
- VC学习资料收集(6):连连看通路检测算法
- sessionbean+entitybean 在 jbx+wl7中调试笔记。
- 几个用URL调用windows我的电脑,回收站等的链接
- 去空隔函数
- 客户端脚本