Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Meta Data in binaries(dll) einbinden (https://www.delphipraxis.net/100255-meta-data-binaries-dll-einbinden.html)

Billi Berserker 25. Sep 2007 11:01


Meta Data in binaries(dll) einbinden
 
Mich würden mal lösungsansätze interessieren wie man am besten bestimmte Informationen (Meta Data) in fertig kompilierte libraries einbindet und besonders wie man das ganze am besten auslesen kann.

Das Problem ist folgendes,
Ich hab ein plugin system wobei jedes plugin durch eine dll Datei repräsentiert wird. Die plugins werden natürlich dynamich zur Laufzeit geladen (insofern sie benutzt werden). Nun muß ich aber zu jeder dll Datei bestimmten Informationen speichern. Z.b. Description, Author, Type, ...
Was ich ebend nicht möchte ist zu jeder dll eine extra xml Datei mitzuliefern wo diese Daten drin stehen. Ich würde es also gerne irgendwie in der dll selbt speichern.

Eine Lösung wäre die dll einfach eine funktion exportieren lassen die die Daten zurück gibt.
Delphi-Quellcode:
function GetMetaData : TMyMetaData;
begin
  result.Description := 'Something';
  result.ServiceType := stSystem;
end;

export
  GetMetaData;
Das Problem damit wäre das die dll erst mit LoadLibrary geladen werden muß um an die Daten ran zu kommen und brauch die Daten eigentlich bevor die dll geladen wird (weil nur die dlls geladen werden die auch wirklich gebraucht werden).

Was wären weitere Möglichkeiten? Könnte man die Daten irgendwie als eine art Ressource String in die dll rein kompilieren und dann auslesen ohne die dll komplett zu laden? Oder gäbe es noch komplett andere Möglichkeiten?

OregonGhost 25. Sep 2007 12:12

Re: Meta Data in binaries(dll) einbinden
 
Also, zunächst einmal gibt es, wenn ich mich recht erinnere, die Möglichkeit, eine DLL als reine Datenbibliothek zu laden. Es wird also kein DllMain-Code ausgeführt usw., aber du kannst die Ressourcen der DLL laden. Vielleicht reicht dir das schon.
Ansonsten gibt es hier im Forum diverse Threads dazu, wie man Daten an eine EXE anhängen kann, das könnte man sicherlich auch für DLLs benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz