<?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[Problem mit GetAddrInfo]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche gerade einen Hostnamen in eine IP-Adresse umzuwandeln, laut Doku ist die Funktion gethostbyname veraltet(unterstützt kein UNICODE) und es wird empfohlen die Funktion GetAddrInfo zu benutzen. Also die Doku geöffnet und nach GetAddrInfo gesucht, angeblich werden folgende Betriebssysteme unterstützt:<br />
Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95</p>
<p>Und nun mein Problem, der Compiler findet zwar die getaddrinfo Funktion aber leider unterstützt diese kein UNICODE(laut der Offline PSDK-Doku sollte sie das aber schon)... also in die ws2tcpip.h Datei geschaut und siehe da:</p>
<pre><code class="language-cpp">WINSOCK_API_LINKAGE
int
WSAAPI
getaddrinfo(
    IN const char FAR * nodename,
    IN const char FAR * servname,
    IN const struct addrinfo FAR * hints,
    OUT struct addrinfo FAR * FAR * res
    );

#if (_WIN32_WINNT &gt;= 0x0502)
WINSOCK_API_LINKAGE
int
WSAAPI
GetAddrInfoW(
    IN      PCWSTR              pNodeName,
    IN      PCWSTR              pServiceName,
    IN      const ADDRINFOW *   pHints,
    OUT     PADDRINFOW *        ppResult
    );

#define GetAddrInfoA    getaddrinfo

#ifdef UNICODE
#define GetAddrInfo     GetAddrInfoW
#else
#define GetAddrInfo     GetAddrInfoA
#endif
</code></pre>
<p>Die Funktion die UNICODE(GetAddrInfoW) unterstützt gibt es anscheinend nur für Win2003 oder versteh ich da was falsch? Selbst wenn ich die _WIN32_WINNT Version auf 0x0502 setze findet der Compiler sie nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173296/problem-mit-getaddrinfo</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 11:07:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173296.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Feb 2007 20:32:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit GetAddrInfo on Tue, 13 Feb 2007 20:32:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche gerade einen Hostnamen in eine IP-Adresse umzuwandeln, laut Doku ist die Funktion gethostbyname veraltet(unterstützt kein UNICODE) und es wird empfohlen die Funktion GetAddrInfo zu benutzen. Also die Doku geöffnet und nach GetAddrInfo gesucht, angeblich werden folgende Betriebssysteme unterstützt:<br />
Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95</p>
<p>Und nun mein Problem, der Compiler findet zwar die getaddrinfo Funktion aber leider unterstützt diese kein UNICODE(laut der Offline PSDK-Doku sollte sie das aber schon)... also in die ws2tcpip.h Datei geschaut und siehe da:</p>
<pre><code class="language-cpp">WINSOCK_API_LINKAGE
int
WSAAPI
getaddrinfo(
    IN const char FAR * nodename,
    IN const char FAR * servname,
    IN const struct addrinfo FAR * hints,
    OUT struct addrinfo FAR * FAR * res
    );

#if (_WIN32_WINNT &gt;= 0x0502)
WINSOCK_API_LINKAGE
int
WSAAPI
GetAddrInfoW(
    IN      PCWSTR              pNodeName,
    IN      PCWSTR              pServiceName,
    IN      const ADDRINFOW *   pHints,
    OUT     PADDRINFOW *        ppResult
    );

#define GetAddrInfoA    getaddrinfo

#ifdef UNICODE
#define GetAddrInfo     GetAddrInfoW
#else
#define GetAddrInfo     GetAddrInfoA
#endif
</code></pre>
<p>Die Funktion die UNICODE(GetAddrInfoW) unterstützt gibt es anscheinend nur für Win2003 oder versteh ich da was falsch? Selbst wenn ich die _WIN32_WINNT Version auf 0x0502 setze findet der Compiler sie nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228361</guid><dc:creator><![CDATA[0xDEADBEEF]]></dc:creator><pubDate>Tue, 13 Feb 2007 20:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit GetAddrInfo on Tue, 13 Feb 2007 21:01:45 GMT]]></title><description><![CDATA[<p>0xDEADBEEF schrieb:</p>
<blockquote>
<p>Die Funktion die UNICODE(GetAddrInfoW) unterstützt gibt es anscheinend nur für Win2003 oder versteh ich da was falsch? Selbst wenn ich die _WIN32_WINNT Version auf 0x0502 setze findet der Compiler sie nicht!</p>
</blockquote>
<p>Ich würde mal ganz grob Tippen: Das ist ein Documentation-Bug... in Deiner MSDN-Library...<br />
In der Online-Version wurden die beiden Funktionen getrennt und die &quot;GetAddrInfoW&quot; hat jetzt die richtige Doku:<br />
<a href="http://msdn2.microsoft.com/en-us/library/ms738519.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms738519.aspx</a></p>
<p>Folgendes Code wird bei mir (VC8) aber ohne Probleme compiliert/gelinkt:</p>
<pre><code class="language-cpp">#define _WIN32_WINNT 0x0502
#include &lt;winsock2.h&gt;
#include &lt;Ws2tcpip.h&gt;
#include &lt;tchar.h&gt;
#pragma comment(lib, &quot;ws2_32.lib&quot;)

int _tmain()
{
  GetAddrInfoW(NULL, NULL, NULL, NULL);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1228381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228381</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 13 Feb 2007 21:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit GetAddrInfo on Tue, 13 Feb 2007 21:36:42 GMT]]></title><description><![CDATA[<p>Komisch, die Windowsversion hab ich auch auf 0x0502 gesetzt aber der Compiler findet die Funktion einfach nicht. In der IDE werden die Funktionsdeklarationen nur grau dargestellt(ws2tcpip.h-&gt;GetAddrInfo). Gibt es keine andere Möglichkeit einen Hostnamen in eine IP-Adresse umzuwandeln? Denn soweit ich das beurteilen kann ist die Mindestanforderung dann für das Programm Win2003(0x0502) aber in der Doku im Internet steht: &quot;Requires Windows Vista or Windows XP SP2&quot;</p>
<p>WinXP == 0x0501<br />
Win2003 == 0x0502</p>
<p>oder lieg ich da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228405</guid><dc:creator><![CDATA[0xDEADBEEF]]></dc:creator><pubDate>Tue, 13 Feb 2007 21:36:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit GetAddrInfo on Tue, 13 Feb 2007 21:42:09 GMT]]></title><description><![CDATA[<p>Das Problem mit den Macros ist, dass es (noch) keine Macros für SPs gibt... die gibt es erst mit dem Vista PSDK.</p>
<p>Siehe: Using the Windows Headers<br />
<a href="http://msdn2.microsoft.com/en-us/library/aa383745.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/aa383745.aspx</a></p>
<blockquote>
<p>Note that some features introduced in the latest version of Windows may be added to a service pack for a previous version of Windows. Therefore, to target a service pack, you may need to define _WIN32_WINNT with the value for the next major operating system release. For example, the GetDllDirectory function was introduced in Windows Server 2003 and is conditionally defined if _WIN32_WINNT is 0x0502 or greater. This function was also added to Windows XP SP1. Therefore, if you were to define _WIN32_WINNT 0x0501 to target Windows XP, you would miss features that are defined in Windows XP SP1.</p>
</blockquote>
<p>Und Dein Kommentar bzgl. Vista und XP-SP2 verstehe ich nicht ganz...<br />
Du hast vermutlich nur *eine* Zeile gelesen (die *Client* Zeile). Da gibt es aber auch noch eine *Server* Zeile:</p>
<blockquote>
<p>Requires Windows Server &quot;Longhorn&quot; or Windows Server 2003</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1228412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228412</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Tue, 13 Feb 2007 21:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit GetAddrInfo on Wed, 14 Feb 2007 07:38:52 GMT]]></title><description><![CDATA[<p>danke für die Antwort und den Link, hast recht hab nur auf die clientspezifikationen geachtet. Ich hab den Fehler nun gefunden, hab bei den präprodirektiven in den Projekteinstellungen _WIN32_WINNT 0x0502 anstatt _WIN32_WINNT=0x0502 geschrieben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228494</guid><dc:creator><![CDATA[0xDEADBEEF]]></dc:creator><pubDate>Wed, 14 Feb 2007 07:38:52 GMT</pubDate></item></channel></rss>