Thema: Delphi DynArr: Dll <-> Programm

Einzelnen Beitrag anzeigen

paresy

Registriert seit: 24. Aug 2004
Ort: Lübeck
105 Beiträge
 
Delphi 2007 Professional
 
#9

Re: DynArr: Dll <-> Programm

  Alt 25. Dez 2004, 12:43
versuch mal dies:

Delphi-Quellcode:
function DllNotify(DllType: TDllType): TBotType;
begin
  Result.Cmd := AllocMem(Length('PONG')+1);
  StrPCopy(Result.Cmd, 'PONG');

  SetLength(Result.Msg,1);

  Result.Msg[0] := AllocMem(Length('DSADGFASDJKE')+1);
  StrPCopy(Result.Msg[0], 'DSADGFASDJKE');
end;
sollte laufen... habs grad mal so eingetippt...

das problem ist wahrscheinlich, dass delphi den speicher von den 2 strings am ende der procedur automatisch wieder freigibt... weil es ja nicht weiß dass du es weiterverwendest...

Zitat:
Das wichte bei der Sache ist, Speicher der in einer Dll geholt wird, muss in dieser auch wieder freigegeben werden. Deswegen Create und Destroy.
das wär mir neu.... eigentlich reicht es im hauptprogramm dann wieder :

Delphi-Quellcode:
    BotType := dllFunc[i](DllType); //Hiermit wird DllType an die DllFunction DllNotify gesendet

    WriteLn(BotType.Cmd); //Ausgabe von BotType.Cmd (klappt prolemlos)
    WriteLn(BotType.Msg[0]); //FEHLER

    FreeMem(BotType.Cmd);
    FreeMem(BotType.Msg[0]);
grüße, paresy
  Mit Zitat antworten Zitat