<?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 Absturz freigeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich entwickle momentan mit dem BDS2006 ein kleines Prog das mit einer dll arbeitet.<br />
Beim FromCreate lade ich die dll mittels LoadLibrary und beim FormClose gebe ich sie wieder mittels FreeLibrary frei.</p>
<p>Nun mein problem: Da sich das Porg noch in der Entwicklung befindet kommt es hin und wieder zu Prog- abstürzen. Dabei wird die dll nicht wieder freigegeben.<br />
Gibt es eine möglichkeit ausser Pc Neustart die dll nachträglich freizugeben? Gibt es eine Option im BDS die das automatisch macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187709/dll-nach-absturz-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 20:32:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187709.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Jul 2007 09:36:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 09:36:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich entwickle momentan mit dem BDS2006 ein kleines Prog das mit einer dll arbeitet.<br />
Beim FromCreate lade ich die dll mittels LoadLibrary und beim FormClose gebe ich sie wieder mittels FreeLibrary frei.</p>
<p>Nun mein problem: Da sich das Porg noch in der Entwicklung befindet kommt es hin und wieder zu Prog- abstürzen. Dabei wird die dll nicht wieder freigegeben.<br />
Gibt es eine möglichkeit ausser Pc Neustart die dll nachträglich freizugeben? Gibt es eine Option im BDS die das automatisch macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330660</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:36:56 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 09:41:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du könntest die DLL statisch linken, dann ersparst du dir nicht nur das LoadLibrary sondern Windows passt selber auf die Verbindung auf.<br />
Kannst du nicht statisch linken must du eben nach dem RAII-Prinzip arbeiten. Und da du eh nicht OnCreate und OnClose benutzen solltest verlege das Laden (und alles andere auch) in den Konstruktor des Forms und das Freigeben in den Destruktor.</p>
<p>Noch sicherer wird es wenn du die DLL-Beziehung aus dem Form ganz auslagerst und direkt über die Hauptorjektdatei (&lt;Projektname&gt;.cpp) in der main-Funktion erledigst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330667</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:41:49 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 09:52:30 GMT]]></title><description><![CDATA[<p>Das laden und freigeben steht schon im Konstruktor und Destr. ich nenn es immer nur noch OnCreate bzw OnClose, sorry.</p>
<p>Was genau meinst du mit auslagern in die Projekt cpp? Und warum wird das dann noch sicherer?</p>
<p>Ich hab es mit Exception Handling versucht, aber dann stürzt der ganze Rechner komplett ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330671</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 23 Jul 2007 09:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 10:10:41 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>kingvik387 schrieb:</p>
<blockquote>
<p>Was genau meinst du mit auslagern in die Projekt cpp? Und warum wird das dann noch sicherer?</p>
</blockquote>
<p>Auch VCL-Projekte haben eine main-Funktion in der besagten Quellcodedatei. Darin wird normalerweise nur das Initialieren und Ausführen des Applipation-Objektes gemacht. Aber du kannst auch eigenen Code ausführen. Zum Beispiel das Laden und Entladen von DLLs. Der Vorteil ist das du dann nicht mehr davon abhängig bist das das Application-Objekt selber sauber beendet wird (Der Form-Destruktor wird nur dann sauber aufgerufen wenn auch Application sauber gelöscht wird).<br />
Natürlich must du nun die in der main-Funktion geladenen Funktionspointer an das Form geben. Du könntest dem Form zum Beispiel entsprechende Membervariablen geben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330686</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 10:39:38 GMT]]></title><description><![CDATA[<p>Und diese main Funktion wird <strong>immer</strong> korrekt zu ende geführt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330721</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:39:38 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 10:42:03 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>im catch-Block oder nach dem catch-Block ja.<br />
Wenn natürlich Windows das Programm auf die harte Tour beendet (&quot;Keine Rückmeldung...&quot;) dann hilft das auch nicht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330725</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 10:53:22 GMT]]></title><description><![CDATA[<p>Ok danke erst mal, das test ich mal an. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330730</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 23 Jul 2007 10:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to dll nach Absturz freigeben on Mon, 23 Jul 2007 15:32:02 GMT]]></title><description><![CDATA[<p>Verdammt das tut auch nicht, da ich das Prog im Fehlerfall mit Strg+F2 abbreche. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>Gibt es noch eine möglich die dll nachträglich freizugeben? Vielleicht ein nettes kleines Win Tool?</p>
<p>Aber immerhin konnte ich den Fehler eingrenzen, wobei ich auf das nächste Problem stosse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />. Worin liegt der Unterschied zwischen dem Aufruf einer Funktion innerhalb eines Ereignisses (ButtonClick) und dem Aufruf einer CALLBACK- Funktion eines hochauflösendem Timer? Ich weiss daraus könnte man schon ein neuen Thread im Forum machen, sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330936</guid><dc:creator><![CDATA[kingvik387]]></dc:creator><pubDate>Mon, 23 Jul 2007 15:32:02 GMT</pubDate></item></channel></rss>