<?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[laden einer DLL Funktion funktioniert nicht.]]></title><description><![CDATA[<pre><code class="language-cpp">typedef int (*getaddr)(	   const TCHAR*,
						   const TCHAR* servname,
						   const struct addrinfo* hints,
						   struct addrinfo** res
						);
typedef char* (*gaistr)(	 int ecode	);
typedef void (*freeaddri) ( struct addrinfo* ai);

getaddr getaddrinfo; 
gaistr gai_strerror;
freeaddri freeaddrinfo;

void loadMyDll()
{
	HINSTANCE hinstLib; 
    BOOL fFreeResult, fRunTimeLinkSuccess = FALSE; 
     // Get a handle to the DLL module.
     hinstLib = LoadLibrary(TEXT(&quot;Ws2_32&quot;)); 
     // If the handle is valid, try to get the function address.
     if (hinstLib != NULL) 
    { 
        /*getaddrinfo = (getaddr) GetProcAddress(hinstLib, TEXT(&quot;getaddrinfo&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != getaddrinfo) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }
		fRunTimeLinkSuccess=false;*/
		gai_strerror = (gaistr) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != gai_strerror) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }
		/*fRunTimeLinkSuccess=false;
		freeaddrinfo = (freeaddri) GetProcAddress(hinstLib, TEXT(&quot;freeaddrinfo&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != freeaddrinfo) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }*/
        // Free the DLL module.
        // fFreeResult = FreeLibrary(hinstLib); 
    } 
     // If unable to call the DLL function, use an alternative.
     if (! fRunTimeLinkSuccess) 
        printf(&quot;Message via alternative method\n&quot;); 
}
</code></pre>
<p>Bei der gai_strerror wird &quot;Message via alternative method&quot; ausgegeben. Was mache ich falsch?</p>
<p>Hier die Def. in der MSDN:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gai_strerror_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gai_strerror_2.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/112743/laden-einer-dll-funktion-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 15:27:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/112743.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Jun 2005 20:30:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 15 Jun 2005 20:30:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef int (*getaddr)(	   const TCHAR*,
						   const TCHAR* servname,
						   const struct addrinfo* hints,
						   struct addrinfo** res
						);
typedef char* (*gaistr)(	 int ecode	);
typedef void (*freeaddri) ( struct addrinfo* ai);

getaddr getaddrinfo; 
gaistr gai_strerror;
freeaddri freeaddrinfo;

void loadMyDll()
{
	HINSTANCE hinstLib; 
    BOOL fFreeResult, fRunTimeLinkSuccess = FALSE; 
     // Get a handle to the DLL module.
     hinstLib = LoadLibrary(TEXT(&quot;Ws2_32&quot;)); 
     // If the handle is valid, try to get the function address.
     if (hinstLib != NULL) 
    { 
        /*getaddrinfo = (getaddr) GetProcAddress(hinstLib, TEXT(&quot;getaddrinfo&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != getaddrinfo) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }
		fRunTimeLinkSuccess=false;*/
		gai_strerror = (gaistr) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != gai_strerror) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }
		/*fRunTimeLinkSuccess=false;
		freeaddrinfo = (freeaddri) GetProcAddress(hinstLib, TEXT(&quot;freeaddrinfo&quot;)); 
         // If the function address is valid, call the function.
         if (NULL != freeaddrinfo) 
        {
			 printf(&quot;\nsuccesfull&quot;);
            fRunTimeLinkSuccess = TRUE;
        }*/
        // Free the DLL module.
        // fFreeResult = FreeLibrary(hinstLib); 
    } 
     // If unable to call the DLL function, use an alternative.
     if (! fRunTimeLinkSuccess) 
        printf(&quot;Message via alternative method\n&quot;); 
}
</code></pre>
<p>Bei der gai_strerror wird &quot;Message via alternative method&quot; ausgegeben. Was mache ich falsch?</p>
<p>Hier die Def. in der MSDN:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gai_strerror_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gai_strerror_2.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/810022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810022</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Wed, 15 Jun 2005 20:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 15 Jun 2005 20:59:16 GMT]]></title><description><![CDATA[<p>meiner meinung nach hast du falsch gecastet, probier mal das<br />
[cpp]<br />
gai_strerror = (<strong>gai_strerror</strong>) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;));<br />
[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810032</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Wed, 15 Jun 2005 20:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 15 Jun 2005 21:02:20 GMT]]></title><description><![CDATA[<blockquote>
<p>missing ';' before identifier 'GetProcAddress'</p>
</blockquote>
<p>Kommt dann leider als Meldung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810038</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Wed, 15 Jun 2005 21:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 15 Jun 2005 21:43:08 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p>meiner meinung nach hast du falsch gecastet, probier mal das<br />
[cpp]<br />
gai_strerror = (<strong>gai_strerror</strong>) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;));<br />
[/cpp]</p>
</blockquote>
<p>Nicht eher:</p>
<pre><code class="language-cpp">gai_strerror = (gai_str) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;));
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810067</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Wed, 15 Jun 2005 21:43:08 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 15 Jun 2005 21:45:33 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p>meiner meinung nach hast du falsch gecastet, probier mal das<br />
[cpp]<br />
gai_strerror = (<strong>gai_strerror</strong>) GetProcAddress(hinstLib, TEXT(&quot;gai_strerror&quot;));<br />
[/cpp]</p>
</blockquote>
<p>Das kanns eigentlich nicht sein, da gai_strerror ja kein Typ ist.<br />
Ich sehe momentan zwei Unstimmigkeiten.<br />
Erstens wird gai_strerror vermutlich gar nicht in der Bibliothek existieren, sondern einfach nur als Makro in bedingter Unicode Kompilierung definiert sein. Versuch mal die Adresse von gai_strerrorA bzw. gai_strerrorW zu bekommen. Wobei das vermutlich auch nichts bringen wird, da ich keine Library Angabe in der MSDN Doku sehe. Ist vermutlich als inline Funktion in einer Header Datei definiert.<br />
Und zweitens bringt TEXT bei GetProcAddress nichts, da ein LPCSTR übergeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810068</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Wed, 15 Jun 2005 21:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 08:36:32 GMT]]></title><description><![CDATA[<p>war gestern nacht wohl nicht mehr ganz so fit <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="😃"
    /><br />
dar cast den ich vorgeschlagen habe ist natürlich blödsinn, wurde auch schon festgestellt (jetzt müsste ein &quot;schäm&quot; simley geben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810244</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 16 Jun 2005 08:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 10:57:32 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> &lt;-- Da ist es <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/810397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810397</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Thu, 16 Jun 2005 10:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 11:05:12 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>die Funktion &quot;gai_strerr&quot; wird nicht von &quot;ws2_w32.dll&quot; exportiert und kann somit auch nicht via LoadLibrary &amp; GetProcAddress ermittelt werden. Um diese Funktion nutzen zu können, muss der Header &quot;ws2tcpip.h&quot; eingebunden werden, da dort die Funktion nicht nur definiert sondern auch implementiert ist.</p>
<p>Gruß refowe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810407</guid><dc:creator><![CDATA[refowe]]></dc:creator><pubDate>Thu, 16 Jun 2005 11:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 17:27:55 GMT]]></title><description><![CDATA[<p>Ich hab diesen Header eingebunden, aber gai_strerror und getaddrinfo usw. sind undefiniert....WARUUUuuUUM? - *heul</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810597</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Thu, 16 Jun 2005 17:27:55 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 18:46:08 GMT]]></title><description><![CDATA[<p>refowe schrieb:</p>
<blockquote>
<p>da dort die Funktion nicht nur definiert sondern auch implementiert ist</p>
</blockquote>
<p>Und was ist da der Unterschied? <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>
<p>clierko schrieb:</p>
<blockquote>
<p>Ich hab diesen Header eingebunden, aber gai_strerror und getaddrinfo usw. sind undefiniert....WARUUUuuUUM? - *heul</p>
</blockquote>
<p>Evtl. altes PlatformSDK? Zudem steht in der Doku auch was von Wspiapi.h.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810660</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 16 Jun 2005 18:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 19:09:57 GMT]]></title><description><![CDATA[<p>hab jetzt alles aus der sdk ins mfc++ verzeichnis kopiert.</p>
<p>jetzt bekomme ich hunderte Fehler:</p>
<p>Hier ein Ausschnitt:</p>
<blockquote>
<p>microsoft visual studio6\vc98\include\ws2tcpip.h(29) : error C2079: 'imr_multiaddr' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(30) : error C2079: 'imr_interface' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(38) : error C2079: 'imr_multiaddr' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(39) : error C2079: 'imr_sourceaddr' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(40) : error C2079: 'imr_interface' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(46) : error C2079: 'imsf_multiaddr' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(47) : error C2079: 'imsf_interface' uses undefined struct 'in_addr'<br />
e:\microsoft visual studio6\vc98\include\ws2tcpip.h(48) : error C2146: syntax error : missing ';' before identifier 'ims</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/810675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810675</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Thu, 16 Jun 2005 19:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 19:45:14 GMT]]></title><description><![CDATA[<p>clierko schrieb:</p>
<blockquote>
<p>hab jetzt alles aus der sdk ins mfc++ verzeichnis kopiert.</p>
</blockquote>
<p>Keine gute Idee. Sag deiner IDE einfach, wo sich die Include Verzeichnisse befinden (über die Optionen machbar).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810693</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 16 Jun 2005 19:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 20:00:54 GMT]]></title><description><![CDATA[<p>Das hatte ich schon probiert..klappte nicht so recht, aber daran liegt es nicht.</p>
<pre><code class="language-cpp">#include &lt;winsock2.h&gt;
#include &lt;WS2tcpip.h&gt;

int main()
{
	return 0;
}
</code></pre>
<p>Fehler:</p>
<blockquote>
<p>e:\microsoft visual studio6\vc98\include\wspiapi.h(45) : error C2265: '&lt;Unknown&gt;' : reference to a zero-sized array is illegal<br />
e:\microsoft visual studio6\vc98\include\wspiapi.h(45) : error C2265: '&lt;Unknown&gt;' : reference to a zero-sized array is illegal<br />
Error executing cl.exe.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/810704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810704</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Thu, 16 Jun 2005 20:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Thu, 16 Jun 2005 20:53:30 GMT]]></title><description><![CDATA[<p>zero-sized Arrays sind in C++ nicht erlaubt (IIRC auch in C). Und gerade im Hinblick auf Standard Konformität nutzen die PlatformSDK Header oft Compiler Erweiterungen. Hast du diese evtl. deaktiviert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/810739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/810739</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 16 Jun 2005 20:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Fri, 17 Jun 2005 16:49:33 GMT]]></title><description><![CDATA[<p>Wo kannich das an/abschalten? (MVC++ 6.0)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/811383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/811383</guid><dc:creator><![CDATA[clierko]]></dc:creator><pubDate>Fri, 17 Jun 2005 16:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to laden einer DLL Funktion funktioniert nicht. on Wed, 13 Jul 2005 07:03:50 GMT]]></title><description><![CDATA[<p>clierko schrieb:</p>
<blockquote>
<p>Wo kannich das an/abschalten? (MVC++ 6.0)</p>
</blockquote>
<p>I had same problem, now i have added:<br />
/D &quot;_WSPIAPI_COUNTOF&quot;<br />
to Project Options found in Project Settings...<br />
And now everything is ok...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829850</guid><dc:creator><![CDATA[Jesper]]></dc:creator><pubDate>Wed, 13 Jul 2005 07:03:50 GMT</pubDate></item></channel></rss>