<?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[Fehler im DLL-Tutorial?]]></title><description><![CDATA[<p>kann es sein das bei eurem tutorial auf <a href="http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel5.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel5.html</a> ein fehler drin is?</p>
<p>der fehler steckt in der funktion AddVals...</p>
<pre><code class="language-cpp">int AddVals(int x, int y)
{
    TAddVals* AddVals; //Variable des Zeigertyps.
    int Erg;
    HINSTANCE h = LoadLibrary(&quot;Project2.dll&quot;); //DLL wird bei Bedarf geladen.
    if (h != 0)
        AddVals = (TAddVals*)GetProcAddress(h, &quot;_AddVals&quot;);
    if (AddVals != NULL)
        Erg = AddVals(x, y); //Aufruf der DLL-Funktion, hier also kein rekursiver Aufruf.
    else
        Erg = 0;
    FreeLibrary(h); //..und nach Gebrauch entladen.
    return Erg;
}
</code></pre>
<p>wenn dort LoadLibrary fehl schlägt könnte es sein das die variable AddVals ungleich NULL ist weil diese nie mit NULL initialisiert wurde oder den wert NULL (z.B. von GetProcAddress) zugewiesen bekommen hat. das hätte zur folge das AddVals aufgerufen wird obwohl es kein gültigen zeiger auf eine funktion beinhaltet.</p>
<p>(falls ich mich irre schneidet mir bitte nich die eier ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/107599/fehler-im-dll-tutorial</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 17:51:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/107599.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Apr 2005 08:08:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler im DLL-Tutorial? on Thu, 21 Apr 2005 08:08:13 GMT]]></title><description><![CDATA[<p>kann es sein das bei eurem tutorial auf <a href="http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel5.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/DLL_Tutorial/artikel5.html</a> ein fehler drin is?</p>
<p>der fehler steckt in der funktion AddVals...</p>
<pre><code class="language-cpp">int AddVals(int x, int y)
{
    TAddVals* AddVals; //Variable des Zeigertyps.
    int Erg;
    HINSTANCE h = LoadLibrary(&quot;Project2.dll&quot;); //DLL wird bei Bedarf geladen.
    if (h != 0)
        AddVals = (TAddVals*)GetProcAddress(h, &quot;_AddVals&quot;);
    if (AddVals != NULL)
        Erg = AddVals(x, y); //Aufruf der DLL-Funktion, hier also kein rekursiver Aufruf.
    else
        Erg = 0;
    FreeLibrary(h); //..und nach Gebrauch entladen.
    return Erg;
}
</code></pre>
<p>wenn dort LoadLibrary fehl schlägt könnte es sein das die variable AddVals ungleich NULL ist weil diese nie mit NULL initialisiert wurde oder den wert NULL (z.B. von GetProcAddress) zugewiesen bekommen hat. das hätte zur folge das AddVals aufgerufen wird obwohl es kein gültigen zeiger auf eine funktion beinhaltet.</p>
<p>(falls ich mich irre schneidet mir bitte nich die eier ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/771848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/771848</guid><dc:creator><![CDATA[mutzel]]></dc:creator><pubDate>Thu, 21 Apr 2005 08:08:13 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im DLL-Tutorial? on Thu, 21 Apr 2005 13:00:49 GMT]]></title><description><![CDATA[<p>MSDN sagt dazu:</p>
<pre><code>If the function succeeds, the return value is a handle to the module.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.
</code></pre>
<p>Sollte also ganz klar NULL sein, wenn der Aufruf nicht erfolgreich war.</p>
<p>Gruß Nighthero</p>
]]></description><link>https://www.c-plusplus.net/forum/post/772094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/772094</guid><dc:creator><![CDATA[Nighthero]]></dc:creator><pubDate>Thu, 21 Apr 2005 13:00:49 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im DLL-Tutorial? on Thu, 21 Apr 2005 14:37:31 GMT]]></title><description><![CDATA[<p>das problem ist aber das GetProcAddress nicht aufgerufen wird wenn LoadLibrary nicht erfolgreich war ... aber AddVals trotzdem benutzt wird auch wenn GetProcAddress nie aufgerufen wurde und damit AddVals nie einen gültigen wert erhalten hat...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/772176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/772176</guid><dc:creator><![CDATA[mutzel]]></dc:creator><pubDate>Thu, 21 Apr 2005 14:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im DLL-Tutorial? on Thu, 21 Apr 2005 14:54:58 GMT]]></title><description><![CDATA[<p>Du hast recht. Da muss man den Zeiger entweder mit NULL initialisieren oder einen else-Zweig in die obere Abfrage einführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/772188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/772188</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 21 Apr 2005 14:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler im DLL-Tutorial? on Thu, 21 Apr 2005 14:57:48 GMT]]></title><description><![CDATA[<p>Wieder mal nicht aufgepasst, ich hatte nur nach LoadLibrary gesehen.</p>
<p>Ich würde es so machen:</p>
<pre><code class="language-cpp">int AddVals(int x, int y)
{
    TAddVals* AddVals; //Variable des Zeigertyps.
    int Erg;
    HINSTANCE h = LoadLibrary(&quot;Project2.dll&quot;); //DLL wird bei Bedarf geladen.
    if (!h) 
        return 0;
...
</code></pre>
<p>Gruß Nighthero</p>
]]></description><link>https://www.c-plusplus.net/forum/post/772191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/772191</guid><dc:creator><![CDATA[Nighthero]]></dc:creator><pubDate>Thu, 21 Apr 2005 14:57:48 GMT</pubDate></item></channel></rss>