<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DLL nach FreeLibrary ersetzen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte eine plugin DLL, die mit LoadLibrary geladen wird, nach dem Entladen mittels FreeLibrary löschen bzw. ersetzen können.<br />
FreeLibrary klappt soweit nur kann ich die Datei nicht löschen - Windows blockiert sie solange meine Applikation noch läuft - wieso?<br />
In der DLL wird eigentlich nichts gemacht (sie besteht aus zwei leeren Funktionen - eine load und eine unload Funktion).<br />
Hat da jemand einen Tipp was sich da machen lässt?</p>
<p>Danke &amp; Gruß</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220638/dll-nach-freelibrary-ersetzen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:05:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220638.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Aug 2008 06:14:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 06:14:02 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte eine plugin DLL, die mit LoadLibrary geladen wird, nach dem Entladen mittels FreeLibrary löschen bzw. ersetzen können.<br />
FreeLibrary klappt soweit nur kann ich die Datei nicht löschen - Windows blockiert sie solange meine Applikation noch läuft - wieso?<br />
In der DLL wird eigentlich nichts gemacht (sie besteht aus zwei leeren Funktionen - eine load und eine unload Funktion).<br />
Hat da jemand einen Tipp was sich da machen lässt?</p>
<p>Danke &amp; Gruß</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567289</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Tue, 19 Aug 2008 06:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 06:21:13 GMT]]></title><description><![CDATA[<p>Warum sollte man das denn überhaupt wollen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567291</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 19 Aug 2008 06:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 06:28:14 GMT]]></title><description><![CDATA[<p>Zum Beispiel dann, wenn man einen Fehler entdeckt oder neue Funktionalität hinzufügt und man die Applikation nicht beenden will sondern lediglich das Plugin neu laden will...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567296</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Tue, 19 Aug 2008 06:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 06:35:08 GMT]]></title><description><![CDATA[<p>Hm. Also wenn der Programmierer einen Fehler entdeckt und seine DLL/Plugin neu kompiliert, finde ich es schonv vertretbar, dass die das Plugin ladende Anwendung neu gestartet wird. Aber naja... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567300</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 19 Aug 2008 06:35:08 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 06:38:48 GMT]]></title><description><![CDATA[<p>Bitte nicht die Motivation in Frage stellen - vielleicht hat man sich was dabei gedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567304</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Tue, 19 Aug 2008 06:38:48 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 10:20:26 GMT]]></title><description><![CDATA[<p>Bist Du sicher, dass nicht öfters als einmal LoadLibrary aufgerufen wurde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567444</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 19 Aug 2008 10:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 10:23:52 GMT]]></title><description><![CDATA[<p>Hi Martin,</p>
<p>ja bin ich. Kann es sein, dass es unter Windows gar nicht geht*?</p>
<p>*Ich habe gelesen, dass Windows die DLLs automatisch cached wenn sie einmal geladen wurden. Man kann das mit &quot;AutoUnloadDll&quot; in der Registry ausschalten, aber das beinflusst dann jede DLL und das ist mehr als unschön.</p>
<p>Habt ihr vielleicht einen anderen Vorschlag, wie ich mein Vorhaben realisieren kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567446</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Tue, 19 Aug 2008 10:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 10:25:30 GMT]]></title><description><![CDATA[<p>Benenne diue DLL um oder lege sie in ein anderes Verzeichnis <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567447</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 19 Aug 2008 10:25:30 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 11:33:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/11352">@pub00515</a>:<br />
Ich *weiss* dass das geht, da das genau der Weg ist über den wir im laufenden Betrieb Plugins unseres Serverprogrammes austauschen.<br />
Wenn es bei dir nicht geht machst du vermutlich etwas falsch.</p>
<p>Guck mal ob du den PROCESS_DETACH Aufruf (DllMain) bekommst.</p>
<p>Wenn nicht hast du wahrscheinlich wirklich ein LoadLibrary übersehen.</p>
<p>BTW: ich weiss nicht ob man die DLL *sofort* nach dem FreeLibrary löschen kann, wir machen das immer erst später per Hand (neue Versionen bekommen nen neuen Namen - über .ini File halt). Wobei &quot;später&quot; auch nur ein paar Sekunden später sein kann.</p>
<p>Was ganz sicher geht ist was Jochen geschrieben hat: die DLL umbenennen. Du kannst unter Windows nämlich auch DLLs umbenennen die gerade in Verwendung sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567482</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 19 Aug 2008 11:33:57 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 11:36:22 GMT]]></title><description><![CDATA[<p>p.S.:<br />
Dieses DLL Caching und &quot;AutoUnloadDll&quot; haben nur mit Explorer Extensions zu tun, nicht mit normalen DLLs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567484</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 19 Aug 2008 11:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Tue, 19 Aug 2008 12:00:55 GMT]]></title><description><![CDATA[<p>Ansonsten mal mit dem ProcessExplorer von Sysinternals gucken, wer die DLL noch geladenn hat.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567497</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Tue, 19 Aug 2008 12:00:55 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Sun, 24 Aug 2008 18:44:10 GMT]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>ich habe die Ursache gefunden: Bei der C DLL handelt es sich um eine C++ DLL wo auch CLI aktiviert ist. Das brauche ich, damit ich eine C# DLL laden kann. Leider wird die C DLL per FreeLibrary nicht released wenn man FreeLibrary benutzt. Gibt es da einen anderen Weg um CLI explizit entladen zu können?<br />
Sobald ich CLI deaktiviere, funktioniert FreeLibrary wie erwartet.</p>
<p>Danke und Gruß</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570637</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Sun, 24 Aug 2008 18:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to DLL nach FreeLibrary ersetzen on Sun, 24 Aug 2008 19:06:58 GMT]]></title><description><![CDATA[<p>IMHO nein. Ist einmal .NET am laufen kann man dies nicht mehr abschalten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1570648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1570648</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 24 Aug 2008 19:06:58 GMT</pubDate></item></channel></rss>