导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

String类型转化成PChar类型需要注意

Posted on   beeone  阅读(1037)  评论(0编辑  收藏  举报

String类型转化成PChar类型需要注意:

  如果使用了将AnsiString字符串强制转换为PChar类型的函数和过程,在使用结束后,要手工把它的长度恢复为原来以Null结束的长度。STRUTILS单元中的RealizeLenght()函数可以实现这一点:

procedure REAlizeLength(var S : String);

begin

  SetLength(S,StrLen(PChar(S)));

end;

调用ReallizeLength();

var

  S: STing;

begin

  SetLength(S,256);//重要首先给字符串分配空间

  //调用函数,S现在包含目录字符串

  GetWindowDirectory(PChar(s),256);

  RealizeLength(S);//设置S的长度为Null结束的长度;

end;

注意:在将字符串转化为PChar类型时要小心,因为字符串在超出其作用范围时有自动回收功能,因此当进行P :=PChar(Str)的赋值时,P的作用域(生存期)应当大于Str的作用域。

努力加载评论中...
点击右上角即可分享
微信分享提示