Einzelnen Beitrag anzeigen

slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#3

AW: Problem mit Variablendeklaration und Vererbung

  Alt 12. Mär 2022, 17:59
Hallo,

sry für selbst-Replys - aber ich habs hinbekommen (wo ich noch vor Stunden gar keine Ahnung hatte, wie das gehen soll und auch nicht gedacht hätte, dass ich das hinbekomme - sonst hätte ich nicht gefragt).

Die Lösung für den letzten Post war, dass man natürlich die Elemente des TArrays casten muss und nicht das fertige Array (logisch):

Delphi-Quellcode:
DLLLoader<IImport>(ExtractFilePath(paramstr(0)), 'Import*.dll');

[...]

function TPDFThread.DLLLoader<T>(Directory, Filemask: string): TArray<T>;
type
  TFNGetImportInterface = function(): IImport; stdcall; //IImport
var
    GetImportInterface: TFNGetImportInterface;
    ImportAdapters: array of IImport;
    [...]

begin
    [...]
        GetImportInterface:=GetProcAddress(libs[j], 'GetInterface');

        // in Array für Rückgabe speichern und Parameter übergeben
        j:=Length(ImportAdapters); inc(j); SetLength(ImportAdapters, j);
        ImportAdapters[j-1]:=GetImportInterface; // über GetInterface wird eine Instanz der enthaltenen Klasse created
        ImportAdapters[j-1].SetParameter(PChar('meinKey'), PChar('meineValue'));

        cntTemp:=Length(result); SetLength(result, cntTemp+1);
        p := GetTypeData(TypeInfo(T));
        Assert(ifHasGuid in p.IntfFlags);
        Supports(ImportAdapters[j-1], p.GUID, result[cntTemp]);
    [...]
Ich hoffe, es hilft mal jemanden

Grüße!
  Mit Zitat antworten Zitat