EXE-
DLL-übergreifende Dinge im Zusammenhang mit String, TStringList und anderen Sachen ergeben meistens Probleme.
die
RTTI und der Standard-Speichermanager arbeiten da jeweils unabhängig und vertragen sich nicht untereinander.
es gibt schon mehrere Theman zu diesem Problem ... einfach mal etwas umschauen
du könntest mal versuchen die Daten z.B. per PChar, statt per TStringList rauszubekommen.
z.B.
DLL-intern den StringList-Inhalt in den übergebenen Puffer kopieren und dann wieder zurück
Delphi-Quellcode:
Procedure DBListTables(Liste: PChar; MaxLength: Integer);
external DllPath;
DBListTables(@Buffer, BufferSize);
xListe := TStringList.Create;
xListe.CommaText := {Buffer};
lstTables.Items:=xListe;
xListe.Free;
// [add] warum so umständlich ??? *grübel*
// sollte auch direkt gehn *kopfauftischhau*
DBListTables(@Buffer, BufferSize);
lstTables.Items.CommaText := {Buffer};
[add]
RTTI
oder halt mal die Maus über
RTTI