| Autor |
Nachricht |
IPv6
Unregistrierter
|
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
|
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
|
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
|
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
|
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. |
|
|
|
 |
|
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.
|
|
|
|
|