Link to home
Start Free TrialLog in
Avatar of lwinkenb
lwinkenb

asked on

Problem with include files

I have a normal MFC application, but when I put the add the following:

#include <pcap/pcap.h>

I all of a sudden get a ton of errors.  I figure it's due to a conflict between winsock header files, but I dont know how to resolve it.

--------------------Configuration: test - Win32 Debug--------------------
Compiling...
HTMLMonitor.cpp
c:\program files\microsoft sdk\include\winsock2.h(109) : error C2011: 'fd_set' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(144) : warning C4005: 'FD_SET' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(88) : see previous definition of 'FD_SET'
c:\program files\microsoft sdk\include\winsock2.h(153) : error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(209) : error C2011: 'hostent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(222) : error C2011: 'netent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(229) : error C2011: 'servent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(241) : error C2011: 'protoent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(397) : error C2011: 'sockaddr_in' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(407) : error C2011: 'WSAData' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(467) : warning C4005: 'SO_DONTLINGER' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(411) : see previous definition of 'SO_DONTLINGER'
c:\program files\microsoft sdk\include\winsock2.h(524) : warning C4005: 'AF_IPX' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(469) : see previous definition of 'AF_IPX'
c:\program files\microsoft sdk\include\winsock2.h(552) : warning C4005: 'AF_MAX' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(488) : see previous definition of 'AF_MAX'
c:\program files\microsoft sdk\include\winsock2.h(558) : error C2011: 'sockaddr' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(598) : error C2011: 'sockproto' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(637) : error C2011: 'linger' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(650) : warning C4005: 'SOMAXCONN' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(553) : see previous definition of 'SOMAXCONN'
c:\program files\microsoft sdk\include\winsock2.h(675) : warning C4005: 'FD_READ' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(571) : see previous definition of 'FD_READ'
c:\program files\microsoft sdk\include\winsock2.h(678) : warning C4005: 'FD_WRITE' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(572) : see previous definition of 'FD_WRITE'
c:\program files\microsoft sdk\include\winsock2.h(681) : warning C4005: 'FD_OOB' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(573) : see previous definition of 'FD_OOB'
c:\program files\microsoft sdk\include\winsock2.h(684) : warning C4005: 'FD_ACCEPT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(574) : see previous definition of 'FD_ACCEPT'
c:\program files\microsoft sdk\include\winsock2.h(687) : warning C4005: 'FD_CONNECT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(575) : see previous definition of 'FD_CONNECT'
c:\program files\microsoft sdk\include\winsock2.h(690) : warning C4005: 'FD_CLOSE' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(576) : see previous definition of 'FD_CLOSE'
c:\program files\microsoft sdk\include\winsock2.h(1622) : error C2375: 'accept' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(744) : see declaration of 'accept'
c:\program files\microsoft sdk\include\winsock2.h(1643) : error C2375: 'bind' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(749) : see declaration of 'bind'
c:\program files\microsoft sdk\include\winsock2.h(1662) : error C2375: 'closesocket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(754) : see declaration of 'closesocket'
c:\program files\microsoft sdk\include\winsock2.h(1681) : error C2375: 'connect' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(756) : see declaration of 'connect'
c:\program files\microsoft sdk\include\winsock2.h(1702) : error C2375: 'ioctlsocket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(761) : see declaration of 'ioctlsocket'
c:\program files\microsoft sdk\include\winsock2.h(1723) : error C2375: 'getpeername' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(766) : see declaration of 'getpeername'
c:\program files\microsoft sdk\include\winsock2.h(1744) : error C2375: 'getsockname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(771) : see declaration of 'getsockname'
c:\program files\microsoft sdk\include\winsock2.h(1767) : error C2375: 'getsockopt' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(776) : see declaration of 'getsockopt'
c:\program files\microsoft sdk\include\winsock2.h(1788) : error C2375: 'htonl' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(783) : see declaration of 'htonl'
c:\program files\microsoft sdk\include\winsock2.h(1805) : error C2375: 'htons' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(785) : see declaration of 'htons'
c:\program files\microsoft sdk\include\winsock2.h(1822) : error C2375: 'inet_addr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(787) : see declaration of 'inet_addr'
c:\program files\microsoft sdk\include\winsock2.h(1839) : error C2375: 'inet_ntoa' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(789) : see declaration of 'inet_ntoa'
c:\program files\microsoft sdk\include\winsock2.h(1857) : error C2375: 'listen' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(791) : see declaration of 'listen'
c:\program files\microsoft sdk\include\winsock2.h(1875) : error C2375: 'ntohl' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(795) : see declaration of 'ntohl'
c:\program files\microsoft sdk\include\winsock2.h(1892) : error C2375: 'ntohs' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(797) : see declaration of 'ntohs'
c:\program files\microsoft sdk\include\winsock2.h(1912) : error C2375: 'recv' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(799) : see declaration of 'recv'
c:\program files\microsoft sdk\include\winsock2.h(1937) : error C2375: 'recvfrom' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(805) : see declaration of 'recvfrom'
c:\program files\microsoft sdk\include\winsock2.h(1963) : error C2375: 'select' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(813) : see declaration of 'select'
c:\program files\microsoft sdk\include\winsock2.h(1987) : error C2375: 'send' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(820) : see declaration of 'send'
c:\program files\microsoft sdk\include\winsock2.h(2012) : error C2375: 'sendto' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(826) : see declaration of 'sendto'
c:\program files\microsoft sdk\include\winsock2.h(2038) : error C2375: 'setsockopt' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(834) : see declaration of 'setsockopt'
c:\program files\microsoft sdk\include\winsock2.h(2060) : error C2375: 'shutdown' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(841) : see declaration of 'shutdown'
c:\program files\microsoft sdk\include\winsock2.h(2080) : error C2375: 'socket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(845) : see declaration of 'socket'
c:\program files\microsoft sdk\include\winsock2.h(2103) : error C2375: 'gethostbyaddr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(852) : see declaration of 'gethostbyaddr'
c:\program files\microsoft sdk\include\winsock2.h(2122) : error C2375: 'gethostbyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(857) : see declaration of 'gethostbyname'
c:\program files\microsoft sdk\include\winsock2.h(2140) : error C2375: 'gethostname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(859) : see declaration of 'gethostname'
c:\program files\microsoft sdk\include\winsock2.h(2159) : error C2375: 'getservbyport' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(863) : see declaration of 'getservbyport'
c:\program files\microsoft sdk\include\winsock2.h(2178) : error C2375: 'getservbyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(867) : see declaration of 'getservbyname'
c:\program files\microsoft sdk\include\winsock2.h(2196) : error C2375: 'getprotobynumber' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(871) : see declaration of 'getprotobynumber'
c:\program files\microsoft sdk\include\winsock2.h(2213) : error C2375: 'getprotobyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(873) : see declaration of 'getprotobyname'
c:\program files\microsoft sdk\include\winsock2.h(2233) : error C2375: 'WSAStartup' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(877) : see declaration of 'WSAStartup'
c:\program files\microsoft sdk\include\winsock2.h(2251) : error C2375: 'WSACleanup' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(881) : see declaration of 'WSACleanup'
c:\program files\microsoft sdk\include\winsock2.h(2268) : error C2375: 'WSASetLastError' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(883) : see declaration of 'WSASetLastError'
c:\program files\microsoft sdk\include\winsock2.h(2285) : error C2375: 'WSAGetLastError' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(885) : see declaration of 'WSAGetLastError'
c:\program files\microsoft sdk\include\winsock2.h(2302) : error C2375: 'WSAIsBlocking' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(887) : see declaration of 'WSAIsBlocking'
c:\program files\microsoft sdk\include\winsock2.h(2319) : error C2375: 'WSAUnhookBlockingHook' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(889) : see declaration of 'WSAUnhookBlockingHook'
c:\program files\microsoft sdk\include\winsock2.h(2336) : error C2375: 'WSASetBlockingHook' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(891) : see declaration of 'WSASetBlockingHook'
c:\program files\microsoft sdk\include\winsock2.h(2353) : error C2375: 'WSACancelBlockingCall' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(893) : see declaration of 'WSACancelBlockingCall'
c:\program files\microsoft sdk\include\winsock2.h(2375) : error C2375: 'WSAAsyncGetServByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(895) : see declaration of 'WSAAsyncGetServByName'
c:\program files\microsoft sdk\include\winsock2.h(2402) : error C2375: 'WSAAsyncGetServByPort' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(903) : see declaration of 'WSAAsyncGetServByPort'
c:\program files\microsoft sdk\include\winsock2.h(2428) : error C2375: 'WSAAsyncGetProtoByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(911) : see declaration of 'WSAAsyncGetProtoByName'
c:\program files\microsoft sdk\include\winsock2.h(2453) : error C2375: 'WSAAsyncGetProtoByNumber' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(918) : see declaration of 'WSAAsyncGetProtoByNumber'
c:\program files\microsoft sdk\include\winsock2.h(2478) : error C2375: 'WSAAsyncGetHostByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(925) : see declaration of 'WSAAsyncGetHostByName'
c:\program files\microsoft sdk\include\winsock2.h(2505) : error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(932) : see declaration of 'WSAAsyncGetHostByAddr'
c:\program files\microsoft sdk\include\winsock2.h(2528) : error C2375: 'WSACancelAsyncRequest' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(941) : see declaration of 'WSACancelAsyncRequest'
c:\program files\microsoft sdk\include\winsock2.h(2548) : error C2375: 'WSAAsyncSelect' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(943) : see declaration of 'WSAAsyncSelect'
c:\program files\microsoft sdk\include\ws2tcpip.h(28) : error C2011: 'ip_mreq' : 'struct' type redefinition
c:\program files\microsoft sdk\include\ws2tcpip.h(71) : warning C4005: 'IP_TOS' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(361) : see previous definition of 'IP_TOS'
c:\program files\microsoft sdk\include\ws2tcpip.h(72) : warning C4005: 'IP_TTL' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(360) : see previous definition of 'IP_TTL'
c:\program files\microsoft sdk\include\ws2tcpip.h(73) : warning C4005: 'IP_MULTICAST_IF' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(355) : see previous definition of 'IP_MULTICAST_IF'
c:\program files\microsoft sdk\include\ws2tcpip.h(74) : warning C4005: 'IP_MULTICAST_TTL' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(356) : see previous definition of 'IP_MULTICAST_TTL'
c:\program files\microsoft sdk\include\ws2tcpip.h(75) : warning C4005: 'IP_MULTICAST_LOOP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(357) : see previous definition of 'IP_MULTICAST_LOOP'
c:\program files\microsoft sdk\include\ws2tcpip.h(76) : warning C4005: 'IP_ADD_MEMBERSHIP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(358) : see previous definition of 'IP_ADD_MEMBERSHIP'
c:\program files\microsoft sdk\include\ws2tcpip.h(77) : warning C4005: 'IP_DROP_MEMBERSHIP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(359) : see previous definition of 'IP_DROP_MEMBERSHIP'
c:\program files\microsoft sdk\include\ws2tcpip.h(78) : warning C4005: 'IP_DONTFRAGMENT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(362) : see previous definition of 'IP_DONTFRAGMENT'
c:\program files\microsoft sdk\include\wspiapi.h(128) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(const char *)' to 'unsigned long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(232) : error C2440: '=' : cannot convert from 'struct hostent *(__stdcall *)(const char *)' to 'struct hostent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(263) : error C2450: switch expression of type 'int (__stdcall *)(void)' is illegal
        Integral expression required
c:\program files\microsoft sdk\include\wspiapi.h(544) : error C2440: '=' : cannot convert from 'unsigned short (__stdcall *)(unsigned short)' to 'unsigned short'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(555) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(const char *,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(562) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(const char *,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(597) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(unsigned long)' to 'unsigned long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(742) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(int,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(772) : error C2440: '=' : cannot convert from 'char *(__stdcall *)(struct in_addr)' to 'char *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(779) : error C2440: '=' : cannot convert from 'struct hostent *(__stdcall *)(const char *,int,int)' to 'struct hostent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(795) : error C2450: switch expression of type 'int (__stdcall *)(void)' is illegal
        Integral expression required
c:\program files\microsoft sdk\include\wspiapi.h(803) : error C2440: '=' : cannot convert from 'char *(__stdcall *)(struct in_addr)' to 'char *'
        There is no context in which this conversion is possible
Error executing cl.exe.

test.exe - 70 error(s), 19 warning(s)
Avatar of lwinkenb
lwinkenb

ASKER

I solved the problem.  For reference, this is what I had to do:

In StdAfx.h, I added the following:
#define _WINSOCKAPI_            // So we dont include winsock.h
#include <winsock2.h>            // we want to use winsock2.h instead.

Add that before the line that includes afxsock.h.
ASKER CERTIFIED SOLUTION
Avatar of Netminder
Netminder

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial