s1:array[1..40] of char;
getsystemdirectory(@s1,40);后系统目录存在s1里.如何把s1的值取出赋给string类型呢.
我尝试过str:=s1;但
再进行str:=str+'\1.dll'时就不行了,怎么加都加不进去.请帮忙解决.

解决方案 »

  1.   

    var
    s1:array[0..MAX_PATH] of char; //40的长度可能存储不下
    iLen:Integer;
    str:String;iLen:=GetSystemDirectory(@s1,MAX_PATH+1); //iLen取得了实际的长度
    array[iLen]:=chr(0);
    str:=String(s1);
    if str[Length(str)-1]<>'\' then str:=str+'\';
    str:=str+'1.dll';
      

  2.   

    Thank you!!!
       iLen:=GetSystemDirectory(@s1,MAX_PATH+1); //iLen取得了实际的长度
    s1[iLen]:=chr(0);
    str:=String(s1);
    if str[Length(str)-1]<>'\' then str:=str+'\';
    str:=str+'1.dll';
    showmessage(str);