用户名:  密码:   
您当前的位置:首页 > 程序设计 >  Delphi > 

关于加pchar函数避免字符串的连接出错的问题

上次修改时间: 2024-02-01 09:06:22      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\Delphi语言\Delphi语法函数软件使用相关\      下一页

关于加pchar函数避免字符串的连接出错的问题

在字符串后面使用了+加号连接一个字符串,但输出时却没有加号后面那一部分
例:
path2:=path1+'\cjjtpic'; 
showmessage(path2)  //输出时没有后加的\cjjtpic,需要 path2:=PChar(path1)+'\cjjtpic';这样写,因为path1为系统API的返回值

原因:当调用了C/C++或系统动态链接库的函数返回的值要加pchar进行转化

function GetDesktopPath(): string;      //获取桌面路径
var
  pitem: PITEMIDLIST;
  s: string;
begin
  shGetSpecialFolderLocation(0, CSIDL_DESKTOP, pitem);
  setlength(s, 100);
  shGetPathFromIDList(pitem, pchar(s));
  result := s;
end;

procedure TMainFr.Button17Click(Sender: TObject);
var
  path1,path2:string;
begin
  path1:=GetDesktopPath();  //这个GetDesktopPath()函数调用了API,返回值必须加pchar函数转化,否则不能用+和其它字串相连接
  //path2:=path1+'\cjjtpic';  //这样写出错,字符串公联接不成功
  path2:=PChar(path1)+'\cjjtpic';
  if path1 <> '' then
  begin
    if MyCreateDir(path2) = True then
    begin
      Memo1.Lines.Add(path2);
      Memo1.Lines.Add('创健目录成功,按alt+f5会将屏幕截图并以当前时间命名保存到桌面cjzspic文件中');
    end;

  end;
end;

pchar函数说明
用以将delphi的string字串转为C风格(以null结尾的字符数组)的字串,或将C风格(Null)的字串转为delphi风格的字串
当需要跟C/C++写的函数,如系统API交换数据时就需要用到pchar函数