Einzelnen Beitrag anzeigen

Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#1

TWideStriblist kann nicht zu TStringlist zugewiesen werden

  Alt 11. Aug 2008, 16:32
Ich habe mir eine DLL geschrieben mit einigen Datenbankfunktionen und habe mit einer Procedure ein Problem bei der Übergabe.

Ich versuche eine TSringlist Variable von der DLL an das aufrufende Programm zu übertragen.
Dabei kommt der Fehler "TWideStriblist kann nicht zu TStringlist zugewiesen werden"

Folgendermaßen sieht der Aufruf im Programm aus:

Delphi-Quellcode:
Procedure DBListTables(var Liste:TStringList);
  external DllPath;

.
.
procedure TForm1.btnListTablesClick(Sender: TObject);
var
  xListe:TStringList;

begin
  lstTables.Clear; // ListBox löschen
  xListe:=TStringList.Create;
  DBListTables(xListe);
  lstTables.Items:=xListe;
  xListe.Free
end;
In der DLL sieht es so aus:

Delphi-Quellcode:
Procedure ListTables(Var Liste: TStringList);
Var
  i : Integer;

Begin
  Liste.Clear;
  Con1.GetTableNames(Liste, False);

  i := 0;
  Repeat
    Begin
      If (Pos('Cellinfo', Liste[i])) > 0 Then
        Liste.Delete(i);
      Inc(i);
    End;
  Until Liste.Count = i;

  i := 0;
  Repeat
    Begin
      Liste[i] := Copy(Liste[i], 1, Length(Liste[i]) - 4);
      Inc(i);
    End;
  Until Liste.Count = i;
End;
Wenn beides in einem Programm eingebunden ist, dann funktioniert es.
Wenn ich die Procedure über die DLL-Schnittstelle aufrufe, dann kommt beim Aufruf
DBListTables(xListe);
die Fehlermeldung.

Scheinbar gibt es Probleme mit der Übergabe von Stringlisten.

Kann mir dabei jemand helfen ?
  Mit Zitat antworten Zitat