dll selbst entladen lassen



  • guten morgen,
    wollte wissen ob einer von euch es schonmal geschafft hat, dass sich ne dll selbst entläd?
    Wenn ja, wie mach ich des am besten?
    mfg jghj



  • keiner ne ahnung?
    😕



  • ich denk sowas geht nicht, denn dein prog muss der dll ja sagen das sie nicht mehr verwendet wird. was möchtest du den machen? ein pluginsystem?



  • Versuch mal FreeLibraryAndExitThread



  • ScriptGod schrieb:

    Versuch mal FreeLibraryAndExitThread

    und wo würdest du das hin schreiben. am ende der funktion in der dll?
    dann könntest du auch gleich den konventionellen weg wählen



  • wenn eine DLL sich selbst entladen will, sollte man sowas nicht machen.

    void Bla()
    {
    	...
    	FreeLibrary( hModule );
    }
    

    wenn die Funktion Bla innerhalb der Dll ist, aber FreeLibraryAndExitThread würde funktionieren - das was jghj fragte

    Aber ne DLL sollte sich eigentlich nie selbst entladen



  • ScriptGod schrieb:

    wenn eine DLL sich selbst entladen will, sollte man sowas nicht machen.

    void Bla()
    {
    	...
    	FreeLibrary( hModule );
    }
    

    das war mir natürlich klar

    ScriptGod schrieb:

    Aber ne DLL sollte sich eigentlich nie selbst entladen

    das ist der punkt auf den ich hinaus wollte 😉 deswegen habe ich ihn auch gefragt warum er dieses überhaupt machen will.



  • Meint er vielleicht COM? Da werden die DLLs ja von "selbst" entladen - also Windows fragt die DLL zu bestimmten Zeitpunkten, ob sie noch gebraucht wird. Wenn nicht, wird sie entfernt.



  • Normalerweise wird eine DLL vom System automatisch entladen, wenn sie von keinem Prozess mehr gebraucht wird. IIRC gibts da allerdings eine Einstellung in der Registry die das beeinflusst.



  • sorry dass ich so lange nicht antworten konnte .. schulstress etc.
    also es geht darum, dass ich in meinem explorer ein bissl rummodde. Und da hab ich eben dll injection gewählt.
    Eine updatefunktion sollte es aber auch geben, und dafür jedes mal den explorer beenden wär ja schwachsinn.
    Die dll ist praktisch das programm selbst, deshalb sollte sie sich auch selbst entladen können. Werds morgen mal mit FreeLibraryAndExitThread() probieren.
    Danke für die antworten.

    mfg


Anmelden zum Antworten