Gerne doch.
Delphi-Quellcode:
type
TBotType = record
Cmd: PChar;
iLen : Integer; // Anzahl der Msg's
Msg: array [0..0] of PChar;
end;
TDllType = record
Status: Integer;
iLen : Integer; // Anzahl der Cmd's
Cmd: array [0..0] of PChar;
end;
...
So sollten erstmal die Datentypen aussehen!
Grund: GetMem besort Blockweise speicher!
In der
DLL muss es zwei Funktionen geben:
Delphi-Quellcode:
function CreateBotType(Cmd : PChar; Msg : array of PChar) : PBotType;
begin
Größe Berechnen
GetMem Größe rufen
Daten hineinkopieren
end
procedure DestroyObject(p : Pointer);
begin
FreeMem(p);
end;
Das wichte bei der Sache ist, Speicher der in einer
Dll geholt wird, muss in dieser auch wieder freigegeben werden. Deswegen Create und Destroy.
Ich hoffe das reicht!