<?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[Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form)]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine DLL mit der folgenden Funktion:</p>
<pre><code class="language-cpp">int __stdcall GefStoffListeShowForm(int iLang)
{
iLanguage=iLang;
VerzeichnisForm=new TVerzeichnisForm(Application);
VerzeichnisForm-&gt;ShowModal();
VerzeichnisForm-&gt;Release();
delete VerzeichnisForm;
return 0;
}
</code></pre>
<p>&quot;Verzeichnisform&quot; ist bisher noch so wie es bei der Erstellung automatisch erstellt wird.</p>
<p>Die DLL wird dynamisch gelinkt.<br />
Wenn die Funktion aus der DLL aufgerufen wird und der Dialog wird wieder geschlossen erhalte ich die folgende Fehlermeldung:</p>
<blockquote>
<p>Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000.</p>
</blockquote>
<p>Die Funktion wird wie folgt aufgerufen.</p>
<pre><code class="language-cpp">HINSTANCE hDllInst=NULL;
hDllInst=::LoadLibrary(&quot;MeineDll.dll&quot;);
if (hDllInst!=0)
  {
  pGefStoffListeDlg=(GefStoffListeDlg*)::GetProcAddress((HMODULE)hDllInst,
                                                       &quot;GefStoffListeShowForm&quot;);
  (*pGefStoffListeDlg)(iLanguage);
  FreeLibrary(hDllInst);
  /*
  try
    {
    FreeLibrary(hDllInst);
    }
  catch (Exception &amp;exception)
    {
    }
  */
  }
else
  {
  }
</code></pre>
<p>Wenn ich die FreeLibrary-Zeile auskommentiere und stattdessen den try/Catch-Block aktiviere ist die Fehlermeldung natürlich weg.<br />
Ich würde allerdings lieber die Ursache des Fehlers beseitigen.</p>
<p>Das Forum und Google lieferten bisher keinen hilfreichen Hinweis, obwohl ich die Fehlermeldung mehrfahc gefunden habe.</p>
<p>Hat jemand einen Tipp für mich?<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/88251/zugriffsverletzung-bei-freelibrary-dll-enthält-vcl-form</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 05:33:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/88251.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Oct 2004 19:15:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Thu, 07 Oct 2004 19:15:57 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe eine DLL mit der folgenden Funktion:</p>
<pre><code class="language-cpp">int __stdcall GefStoffListeShowForm(int iLang)
{
iLanguage=iLang;
VerzeichnisForm=new TVerzeichnisForm(Application);
VerzeichnisForm-&gt;ShowModal();
VerzeichnisForm-&gt;Release();
delete VerzeichnisForm;
return 0;
}
</code></pre>
<p>&quot;Verzeichnisform&quot; ist bisher noch so wie es bei der Erstellung automatisch erstellt wird.</p>
<p>Die DLL wird dynamisch gelinkt.<br />
Wenn die Funktion aus der DLL aufgerufen wird und der Dialog wird wieder geschlossen erhalte ich die folgende Fehlermeldung:</p>
<blockquote>
<p>Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000.</p>
</blockquote>
<p>Die Funktion wird wie folgt aufgerufen.</p>
<pre><code class="language-cpp">HINSTANCE hDllInst=NULL;
hDllInst=::LoadLibrary(&quot;MeineDll.dll&quot;);
if (hDllInst!=0)
  {
  pGefStoffListeDlg=(GefStoffListeDlg*)::GetProcAddress((HMODULE)hDllInst,
                                                       &quot;GefStoffListeShowForm&quot;);
  (*pGefStoffListeDlg)(iLanguage);
  FreeLibrary(hDllInst);
  /*
  try
    {
    FreeLibrary(hDllInst);
    }
  catch (Exception &amp;exception)
    {
    }
  */
  }
else
  {
  }
</code></pre>
<p>Wenn ich die FreeLibrary-Zeile auskommentiere und stattdessen den try/Catch-Block aktiviere ist die Fehlermeldung natürlich weg.<br />
Ich würde allerdings lieber die Ursache des Fehlers beseitigen.</p>
<p>Das Forum und Google lieferten bisher keinen hilfreichen Hinweis, obwohl ich die Fehlermeldung mehrfahc gefunden habe.</p>
<p>Hat jemand einen Tipp für mich?<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/623560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/623560</guid><dc:creator><![CDATA[barnie]]></dc:creator><pubDate>Thu, 07 Oct 2004 19:15:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Thu, 07 Oct 2004 19:48:27 GMT]]></title><description><![CDATA[<p>barnie schrieb:</p>
<blockquote>
<p>Wenn ich die FreeLibrary-Zeile auskommentiere und stattdessen den try/Catch-Block aktiviere ist die Fehlermeldung natürlich weg.</p>
</blockquote>
<p>Ich finde das eher unnatürlich. Try/catch fängt doch eigentlich nur Exceptions, keine Schmutzverletzungen!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/623590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/623590</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 07 Oct 2004 19:48:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Thu, 07 Oct 2004 23:57:57 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wenn ich ein wenig an den Debugger-Optionen herumschraube, geht es auch ausführlicher:</p>
<p>EAccessViolation (C00000005) ... Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000. ...</p>
<p>Nach einer Prüfung mit CodeGuard vermute ich borlndmm.dll als Verursacher.<br />
Die DLL hat angeblich bereits Speicher reserviert, auf den dann illegal zugegriffen wird.<br />
Die brauche ich eigentlich nicht. Also habe ich das RTL-Linken abgeschaltet.<br />
Hilft leider nicht.<br />
Offensichtlich mogelt mir noch mindestens eine Komponente (Ohne Quellcode!) diese DLL in mein Projekt. Daher kann ich nicht endgültig prüfen ob die DLL schuld ist.</p>
<p>In meiner DLL steht aber nun wirklich noch nichts erwähnenswertes drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/623707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/623707</guid><dc:creator><![CDATA[barnie]]></dc:creator><pubDate>Thu, 07 Oct 2004 23:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Fri, 08 Oct 2004 05:33:55 GMT]]></title><description><![CDATA[<p>Du erstellst VerzeichnisForm mit Application als Owner, löschst es aber selbst. Und schon kracht's wenn die Application versucht das Form ebenfalls zu löschen...</p>
<p>Versuchs mal mit:</p>
<pre><code class="language-cpp">VerzeichnisForm=new TVerzeichnisForm(NULL);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/623722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/623722</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 08 Oct 2004 05:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Tue, 12 Oct 2004 21:17:09 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Der Argumentation kann ich mich anschließen.<br />
Trotzdem scheint die Zugriffsverletzung durch die borlndmm.dll hervorgerufen zu werden.<br />
Da ich leider nicht alle Komponenten bereinigen kann muß ich die EAccessViolation wohl einfach abfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/627245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/627245</guid><dc:creator><![CDATA[barnie]]></dc:creator><pubDate>Tue, 12 Oct 2004 21:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Wed, 13 Oct 2004 05:13:59 GMT]]></title><description><![CDATA[<p>Was passiert, wenn Du das Verzeichnisform-&gt;Release(); rausläßt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/627306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/627306</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Oct 2004 05:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei FreeLibrary (Dll enthält VCL-Form) on Wed, 13 Oct 2004 08:07:08 GMT]]></title><description><![CDATA[<p>ich nehme an du hast - wie von Borland erlangt - die memmanager-Library in die DLL dazugelinkt?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/627401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/627401</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Wed, 13 Oct 2004 08:07:08 GMT</pubDate></item></channel></rss>