我写了个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
就没事了,到底是怎么回事啊
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
就没事了,到底是怎么回事啊
username.FreeInstance;
//username.Destroy;
username:=nil;
var
UserInfo:AUserInfo;procedure TfrmMain.Button1Click(Sender: TObject);
begin
UserInfo:=GetUserInfo('','','','');
end;