Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: WinAPI ::  getaddrinfo - Welcher Header ist nun richtig?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
IPv6
Unregistrierter




Beitrag IPv6 Unregistrierter 14:18:16 28.08.2004   Titel:   getaddrinfo - Welcher Header ist nun richtig?            Zitieren

Hi.

Ich benutze das Windows XP SP2 RC1 Platform SDK und Visual C++ 7.1. Ich will getaddrinfo benutzen.

In der Dokumentation steht:
Header: Declared in Ws2tcpip.h; include Wspiapi.h for Windows 2000/NT and Windows Me/98/95.

Wenn ich dann Wspiapi.h nehme kriege ich 102 Fehlermeldungen. ;-)

Nehme ich allerdings die Ws2tcpip.h funktioniert es.

Ist die Dokumentation falsch?

Hier noch das Testprogramm:

C++:
1
2
3
4
5
6
7
8
#include <winsock2.h>
#include <windows.h>
#include <Wspiapi.h>
 
int main()
{
    getaddrinfo(NULL, NULL, NULL, NULL);
}
flenders
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.07.2002
Beiträge: 9235
Beitrag flenders Mitglied 14:37:19 28.08.2004   Titel:              Zitieren

Einige Fehler kommen sicher auch davon, dass du die Parameter nicht füllst - siehe getaddrinfo.
Komischerweise wird im dortigen Beispiel-Code allerdings ws2tcpip.h direkt eingebunden (oder ist das so gemeint, dass man ab xp direkt einbinden soll)?!
IPv6
Unregistrierter




Beitrag IPv6 Unregistrierter 14:59:26 28.08.2004   Titel:              Zitieren

Zitat:
Einige Fehler kommen sicher auch davon, dass du die Parameter nicht füllst - siehe getaddrinfo.


Dann krieg ich aber Laufzeitfehler, und keine Compilerfehler.

Tja, das Beispiel hatte ich auch schon gesehen. Ich bin richtig verwirrt. :)

Ganz unten in der WS2tcpip.h steht auch vielleicht noch ein wichtiger Hinweis:

C++:
1
2
3
4
5
6
7
8
//
// Unless the build environment is explicitly targeting only
// platforms that include built-in getaddrinfo() support, include
// the backwards-compatibility version of the relevant APIs.
//
#if !defined(_WIN32_WINNT) || (_WIN32_WINNT <= 0x0500)
#include <wspiapi.h>
#endif
flammenvogel
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.03.2004
Beiträge: 566
Beitrag flammenvogel Mitglied 18:58:20 28.08.2004   Titel:              Zitieren

Was kriegst du denn für einen Laufzeitfehler ???
Wenn du wirklich einen Laufzeitfehler kriegst (eine MessageBox mit einer Fehlermeldung), versuch mal die winsock2.h zu includieren, dort müsste es die Funktion eigentlich auch geben (IMHO).

Du musst aber für die Winsock2.h auch eine Libary einbinden, win2sock.a <- irgendwas in der art.

Das du überall NULL übergibst geht garantiert nicht, da die Funktion ja nur zurückgibt ob es geklappt hat, oder eben nicht. <- Funktion wäre so nutzlos.
IPv6
Unregistrierter




Beitrag IPv6 Unregistrierter 19:42:49 28.08.2004   Titel:              Zitieren

Da hast du was falsch verstanden...

Ich bekomme nur Compilerfehler, wenn ich Wspiapi.h statt WS2tcpip.h einbinde.

Ich habe getaddrinfo hier nur mit 4 NULL-Zeigern aufgerufen um das Beispiel einfacher zu machen.
c++.de :: WinAPI ::  getaddrinfo - Welcher Header ist nun richtig?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.