Komisch.
Wenn ich diese Prozedur (aus einer
DLL) calle, bleiben "Vars" und "VarNames" exakt gleich. Muss ich die doch als Referenzparameter oder gar als Zeiger übergeben?
Bin jetzt etwas ratlos... in der Proc werden beide Arrays (die ja intern nur Zeiger sein dürften) nämlich verändert, durch ShowMessage ließ sich das beweisen.
Also, ich lasse den Worten Code folgen:
Delphi-Quellcode:
type
TParamArray=array of Pointer;
TVarArray=array of PString;
procedure CREATEVAR(Params:TParamArray; Vars, VarNames:TVarArray);
var
I:integer;
Param:string;
begin
Param:=string(GetParam(0, Params, Vars, VarNames));
I:=GetVarIndex(Param, VarNames);
if(I=-1)then
begin
SetLength(VarNames, Length(VarNames)+1);
SetLength(Vars, Length(Vars)+1);
GetMem(VarNames[I], Length(Param));
VarNames[I]^:=Param;
end;
end;
Gruß,
LDer.