ďťż

Ładny brzuch

Witam wszystkich programistów!
Dzisiaj po raz kolejny mam problem, tym razem zacząłem się bawić siecią w C++. Zacząłem więc od nauki gniazdek, i odrazu kamień w łeb...
#include <iostream> #include <windows.h> #include <winsock2.h> int main() { return 0; }
I po skompilowaniu (używam Visual Studio 2005):
------ Build started: Project: Socket, Configuration: Debug Win32 ------ Compiling... main.cpp c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(112) : error C2011: 'fd_set' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(54) : see declaration of 'fd_set' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(147) : warning C4005: 'FD_SET' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(88) : see previous definition of 'FD_SET' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(156) : error C2011: 'timeval' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(97) : see declaration of 'timeval' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(212) : error C2011: 'hostent' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(153) : see declaration of 'hostent' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(225) : error C2011: 'netent' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(166) : see declaration of 'netent' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(232) : error C2011: 'servent' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(173) : see declaration of 'servent' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(244) : error C2011: 'protoent' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(185) : see declaration of 'protoent' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(400) : error C2011: 'sockaddr_in' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(321) : see declaration of 'sockaddr_in' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(410) : error C2011: 'WSAData' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(331) : see declaration of 'WSAData' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(470) : warning C4005: 'SO_DONTLINGER' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(411) : see previous definition of 'SO_DONTLINGER' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(527) : warning C4005: 'AF_IPX' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(469) : see previous definition of 'AF_IPX' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(555) : warning C4005: 'AF_MAX' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(488) : see previous definition of 'AF_MAX' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(561) : error C2011: 'sockaddr' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(494) : see declaration of 'sockaddr' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(601) : error C2011: 'sockproto' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(503) : see declaration of 'sockproto' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(640) : error C2011: 'linger' : 'struct' type redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(540) : see declaration of 'linger' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(653) : warning C4005: 'SOMAXCONN' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(553) : see previous definition of 'SOMAXCONN' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(679) : warning C4005: 'FD_READ' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(571) : see previous definition of 'FD_READ' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(682) : warning C4005: 'FD_WRITE' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(572) : see previous definition of 'FD_WRITE' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(685) : warning C4005: 'FD_OOB' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(573) : see previous definition of 'FD_OOB' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(688) : warning C4005: 'FD_ACCEPT' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(574) : see previous definition of 'FD_ACCEPT' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(691) : warning C4005: 'FD_CONNECT' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(575) : see previous definition of 'FD_CONNECT' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(694) : warning C4005: 'FD_CLOSE' : macro redefinition c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(576) : see previous definition of 'FD_CLOSE' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1626) : error C2375: 'accept' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(744) : see declaration of 'accept' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1647) : error C2375: 'bind' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(749) : see declaration of 'bind' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1666) : error C2375: 'closesocket' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(754) : see declaration of 'closesocket' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1685) : error C2375: 'connect' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(756) : see declaration of 'connect' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1706) : error C2375: 'ioctlsocket' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(761) : see declaration of 'ioctlsocket' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1727) : error C2375: 'getpeername' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(766) : see declaration of 'getpeername' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1748) : error C2375: 'getsockname' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(771) : see declaration of 'getsockname' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1771) : error C2375: 'getsockopt' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(776) : see declaration of 'getsockopt' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1792) : error C2375: 'htonl' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(783) : see declaration of 'htonl' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1809) : error C2375: 'htons' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(785) : see declaration of 'htons' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1826) : error C2375: 'inet_addr' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(787) : see declaration of 'inet_addr' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1843) : error C2375: 'inet_ntoa' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(789) : see declaration of 'inet_ntoa' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1861) : error C2375: 'listen' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(791) : see declaration of 'listen' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1879) : error C2375: 'ntohl' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(795) : see declaration of 'ntohl' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1896) : error C2375: 'ntohs' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(797) : see declaration of 'ntohs' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1916) : error C2375: 'recv' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(799) : see declaration of 'recv' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1941) : error C2375: 'recvfrom' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(805) : see declaration of 'recvfrom' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1967) : error C2375: 'select' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(813) : see declaration of 'select' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(1991) : error C2375: 'send' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(820) : see declaration of 'send' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2016) : error C2375: 'sendto' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(826) : see declaration of 'sendto' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2042) : error C2375: 'setsockopt' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(834) : see declaration of 'setsockopt' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2064) : error C2375: 'shutdown' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(841) : see declaration of 'shutdown' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2084) : error C2375: 'socket' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(845) : see declaration of 'socket' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2107) : error C2375: 'gethostbyaddr' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(852) : see declaration of 'gethostbyaddr' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2126) : error C2375: 'gethostbyname' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(857) : see declaration of 'gethostbyname' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2144) : error C2375: 'gethostname' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(859) : see declaration of 'gethostname' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2163) : error C2375: 'getservbyport' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(863) : see declaration of 'getservbyport' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2182) : error C2375: 'getservbyname' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(867) : see declaration of 'getservbyname' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2200) : error C2375: 'getprotobynumber' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(871) : see declaration of 'getprotobynumber' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2217) : error C2375: 'getprotobyname' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(873) : see declaration of 'getprotobyname' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2237) : error C2375: 'WSAStartup' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(877) : see declaration of 'WSAStartup' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2255) : error C2375: 'WSACleanup' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(881) : see declaration of 'WSACleanup' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2272) : error C2375: 'WSASetLastError' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(883) : see declaration of 'WSASetLastError' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2289) : error C2375: 'WSAGetLastError' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(885) : see declaration of 'WSAGetLastError' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2306) : error C2375: 'WSAIsBlocking' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(887) : see declaration of 'WSAIsBlocking' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2323) : error C2375: 'WSAUnhookBlockingHook' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(889) : see declaration of 'WSAUnhookBlockingHook' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2340) : error C2375: 'WSASetBlockingHook' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(891) : see declaration of 'WSASetBlockingHook' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2357) : error C2375: 'WSACancelBlockingCall' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(893) : see declaration of 'WSACancelBlockingCall' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2379) : error C2375: 'WSAAsyncGetServByName' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(895) : see declaration of 'WSAAsyncGetServByName' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2406) : error C2375: 'WSAAsyncGetServByPort' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(903) : see declaration of 'WSAAsyncGetServByPort' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2432) : error C2375: 'WSAAsyncGetProtoByName' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(911) : see declaration of 'WSAAsyncGetProtoByName' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2457) : error C2375: 'WSAAsyncGetProtoByNumber' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(918) : see declaration of 'WSAAsyncGetProtoByNumber' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2482) : error C2375: 'WSAAsyncGetHostByName' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(925) : see declaration of 'WSAAsyncGetHostByName' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2509) : error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(932) : see declaration of 'WSAAsyncGetHostByAddr' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2532) : error C2375: 'WSACancelAsyncRequest' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(941) : see declaration of 'WSACancelAsyncRequest' c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock2.h(2552) : error C2375: 'WSAAsyncSelect' : redefinition; different linkage c:\program files\microsoft visual studio 8\vc\platformsdk\include\winsock.h(943) : see declaration of 'WSAAsyncSelect' f:\projekty\c++\sockety\socket\main.cpp(6) : error C2065: 'cin' : undeclared identifier f:\projekty\c++\sockety\socket\main.cpp(6) : error C2228: left of '.get' must have class/struct/union type is ''unknown-type'' Build log was saved at "file://f:\Projekty\C++\Sockety\Socket\Debug\BuildLog.htm" Socket - 59 error(s), 11 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Dodałem do linkowania tę bibliotekę: ws2_32.lib, ale i tak nic się nie dzieje. Zupełnie jakby ją kompilator olewał... W Code::Blocks też nie chciało pójść, jedynie w Dev-Cpp poszło, ale chciałbym żeby też chodziło pod Visual Studio, kumpel ma to samo Visual Studio i mu działa, a nie wiemy czemu nie działa mi...
Byłbym wdzięczny gdyby ktoś potrafił pomóc...

Dobra, problem "rozwiązany". Zmieniłem kolejność includów i działa. W tutorialach jest inna kolejność, nie wiem co jest nie tak... W takiej kolejności działa:
#include <iostream> #include <winsock2.h> #include <windows.h> int main() { std::cin.get(); return 0; }

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •