Hallo,
ich glaube, ich bin ein wenig weiter
mit Hilfe von Generics:
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'));
[...]
Wo ich jetzt hänge: Wie bekomme ich ImportAdapters als result zurück gegeben / gecasted?
Ich habe so etwas hier (
https://en.delphipraxis.net/topic/47...e-via-generic/) gefunden, damit wirds irgendwie (?) vielleicht gehen, aber wie
?
Delphi-Quellcode:
p := GetTypeData(TypeInfo(T));
Assert(ifHasGuid in p.IntfFlags);
Supports(Self, p.GUID, Result);
Danke,
Sebastian