Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

DLL-EntryPoint mit Funktion tauschen?

  Alt 4. Jul 2009, 00:17
Die Frage ist ganz einfach:

(Wie) Kann kann man den DLL-EntryPoint mit einer Exportfunktion tauschen?


Der Hintergrund ist eben so einfach:

Ich möchte praktisch, daß z.B. Unit-Initialisierungen etwas später vorgenommen werden,
speziell die von der SysUtils und Co.

Es handelt sich um eine statisch verlinkte DLL und ich hätt gern, daß diese Initialisierungen erst nach den Intitialisierungen der EXE geschehen (indem ich's dann manuell über eine "Init"-Prozedur aufrufe).

Ansonsten müßte ich Einiges mehr umstellen und ...
es handelt sich um die DLL-Version mit Objekten meines himXML
... und außerdem würde dann der MemoryManager der DLL und nicht wie in der aktuell hochgeladenen Version der der EXE verwendet. (obwohl das notfalls auch ginge, nur daß man dann, wie bei ShareMem etwas mehr mit der Unitreihenfolge aufpassen muß)

Obwohl ... wo ich das hier grad so schreib ... das ShareMem-Problem wäre ja nicht soooo schlimm, aber ich wollte halt ungern unbedingt am MemoryManagement fremder Anwendungen rumspielen und wenn da dann wer einen "alternativen" MemoryManager verwenden wöllte, dann müßte er diesen in der DLL einbauen, da dann der der EXE mit dem der DLL überschrieben würde (im aktuellen himXML ist es ja so, daß die DLL da noch dynamisch geladen wird und den MM der EXE verpaßt bekommt ... in etwa so).

Außerdem hab ich jetzt schon etwas Zeit in dieses Problem gesteckt
und die direkte External-Verlinkung der Objekte gefällt mir halt besser, als das "verbigen" eines Objektes mit virtuellen Methoden, wie es in der aktuell onlinestehenden Version der Fall ist.
Und zusätzlich hatte ich es geschafft die RTTIs der Objekte in der DLL und Exe abzugleichen (is und as funktionieren mit der selben Objektinstanz in beiden Modulen) ... wäre schade das jetzt wieder ändern zu müssen
$2B or not $2B
  Mit Zitat antworten Zitat