Winsock - Lauter doppelte Deklarationen
-
Also ich fange an mich mit Sockets zu beschäftigen.
Nun habe ich mir das als Grundcode zusammengebastelt://--------------------------------------------------------------------------- #include <windows.h> #include <winsock2.h> #include <stdio.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int startWinsock(void); int main() { long rc; rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } return 0; } int startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } //---------------------------------------------------------------------------Allerdings kommen nun viele Fehler:
[C++ Error] winsock2.h(109): E2238 Multiple declaration for 'fd_set' [C++ Error] winsock.h(54): E2344 Earlier declaration of 'fd_set' [C++ Error] winsock2.h(112): E2146 Need an identifier to declare [C++ Warning] winsock2.h(144): W8017 Redefinition of 'FD_SET' is not identical [C++ Error] winsock2.h(153): E2238 Multiple declaration for 'timeval' [C++ Error] winsock.h(97): E2344 Earlier declaration of 'timeval' [C++ Error] winsock2.h(209): E2238 Multiple declaration for 'hostent' [C++ Error] winsock.h(153): E2344 Earlier declaration of 'hostent' [C++ Error] winsock2.h(222): E2238 Multiple declaration for 'netent' [C++ Error] winsock.h(166): E2344 Earlier declaration of 'netent' [C++ Error] winsock2.h(229): E2238 Multiple declaration for 'servent' [C++ Error] winsock.h(173): E2344 Earlier declaration of 'servent' [C++ Error] winsock2.h(241): E2238 Multiple declaration for 'protoent' [C++ Error] winsock.h(185): E2344 Earlier declaration of 'protoent' [C++ Error] winsock2.h(327): E2238 Multiple declaration for 'in_addr' [C++ Error] winsock.h(269): E2344 Earlier declaration of 'in_addr' [C++ Error] winsock2.h(385): E2238 Multiple declaration for 'sockaddr_in' [C++ Error] winsock.h(319): E2344 Earlier declaration of 'sockaddr_in' [C++ Error] winsock2.h(395): E2238 Multiple declaration for 'WSAData' [C++ Error] winsock.h(329): E2344 Earlier declaration of 'WSAData' [C++ Error] winsock2.h(411): E2146 Need an identifier to declare [C++ Warning] winsock2.h(455): W8017 Redefinition of 'SO_DONTLINGER' is not identical [C++ Warning] winsock2.h(512): W8017 Redefinition of 'AF_IPX' is not identical [C++ Warning] winsock2.h(540): W8017 Redefinition of 'AF_MAX' is not identical [C++ Error] winsock2.h(546): E2238 Multiple declaration for 'sockaddr' [C++ Error] winsock.h(492): E2344 Earlier declaration of 'sockaddr' [C++ Error] winsock2.h(586): E2238 Multiple declaration for 'sockproto' [C++ Error] winsock.h(501): E2344 Earlier declaration of 'sockproto' [C++ Error] winsock2.h(625): E2238 Multiple declaration for 'linger' [C++ Error] winsock2.h(625): E2228 Too many error or warning messagesusw....
Der aufmerksame Beobachter
wird merken, dass es sich immer um doppelte deklarationen handelt.
Nun zur Frage:Kann es sein, dass windows.h winsock.h einbindet?
Das würde ja heißen, dass wenn ich dann nochmal winsock2 einbinde, dass ich dann
doppelte deklarationen hätte.Wenn das so ist, wie kann ich das verhindern und trotzdem winsock2 benurtzen??
MFG
Ace
-
Wenn du den BCB benutzt, warum dann nicht die entsprechenden Komponenten??
Winsock würde dann ja eher in das allg. Forum passen
-
Naja ich wills halt von Anfang an lernen.
Vllt kanns jemand verschieben, dachte nur ich mein ich benutze ja den BCB.MFG
Ace
-
OK hab den Fehler gefunden.
Winsock2.h muss vor windows.h eingebunden werden.MFG
Ace