我写了个dll,里面有这样一个函数  TUserInfo=Record
    UserName:Pchar;
    Logined:Pchar;
    Sex:Pchar;
    Handle:Pchar;
  end;  AUserInfo=array of TUserInfo;function GetUserInfo(AUserName:Pchar;ALogined:Pchar;ASex:Pchar;AHandle:Pchar):AUserInfo;stdcall;
var
  UserName:TStrings;
  UserInfo:AUserInfo;
begin
  UserName:=TStringList.Create ;
  try
    SetLength(UserInfo,1);
  finally
    UserName.Free;
    UserName:=nil;  
  end;
  Result:=UserInfo;
end;当我底三遍时,这个函数会报,内存不能读的错误
如果我UserName变量去掉,获者把Result:=UserInfo改为Result:=nil
就没事了,到底是怎么回事啊