Thema: Delphi DLL wird zu oft geladen!

Einzelnen Beitrag anzeigen

m_junglas

Registriert seit: 3. Apr 2005
Ort: Kaiserslautern
13 Beiträge
 
Delphi 7 Professional
 
#1

DLL wird zu oft geladen!

  Alt 18. Mär 2006, 22:24
Hallo zusammen,

ich habe ein Problem: ich programmiere gerade ein Projekt in dem viele Teile in eigene DLLs ausgelagert werden sollen.
So habe ich schon ein paar DLLs erzeugt, die gut funktionieren.
Eine davon ist z.B. eine, die sich um Logfiles kümmert und die entsprechende Funktion wird von allen DLLs auch benutzt.

Als ich mehrere DLLs in das Hauptprogramm eingebunden habe gab es dann aber Seltsamkeiten. Nach einigen Tests habe ich herausgefunden, dass z.B. diese Logfile-DLL für jedes Modul wiederum eigenständig geladen wurde.

So hat mir auch z.B. der ProcessExplorer zwei identische DLLs gezeigt, die mein Programm dann geladen hat.
Beide DLLs wissen voneinander nichts und jede "gehört" zu dem jeweils aufrufenden Modul (andere DLL oder Hauptprogramm).

Das ist für mein Project jetzt nicht sehr hilfreich. Ich dachte eigentlich eine DLL wird einmal in den Adressraum geladen und dann entsprechend vom ganzen Prozess aus benutzt.
In Zukunft sollen die DLLs auch überkreuz bekannt sein udn da weiss ich noch garnicht, was dann passieren wird.

Wie kann ich das hinbekommen? Oder mache ich irgendwas falsch?


Ich benutze übrigends Delphi 6. Die DLLs werden (noch) statisch eingebunden:

Delphi-Quellcode:
const
  LOGDLLNAME = '.\dll\Solid_Log.dll';

procedure WriteToLog (Infotext : shortstring; Level : integer); external LOGDLLNAME;
procedure LOGinitialize; external LOGDLLNAME name 'DLLinitialize';
procedure LOGfinalize; external LOGDLLNAME name 'DLLfinalize';
Tschüss

/\/\arcus

p.s. das "stdcall" fehlt, das ist hier aber richtig.
Marcus Junglas
  Mit Zitat antworten Zitat