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