Win32 网络编程中fd_set类型重定义问题

http://hi.baidu.com/auleaf/item/60aee0407c9420f4dd0f6c69

 

问题:Win32 网络编程中fd_set类型重定义

D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(109):    error    C2011:    “fd_set”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(144):    warning    C4005:    “FD_SET”    :    宏重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(153):    error    C2011:    “timeval”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(209):    error    C2011:    “hostent”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(222):    error    C2011:    “netent”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(229):    error    C2011:    “servent”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h(241):    error    C2011:    “protoent”    :    “struct”类型重定义   
   D:\Program    Files\Microsoft    Visual    Studio    .NET    2003\Vc7\PlatformSDK\Include\WinSock2.h

原因分析及解决方案:

头文件被包含了多次,

在默认windows.h会包含winsock.h,当你包含winsock2.h就会冲突,因此在包含windows.h前需要定义一个宏,去除winsock。h包含   
    
   #define    WIN32_LEAN_AND_MEAN   //去除一些不常用的
   #include    <windows.h>

 

你可能感兴趣的:(Win32 网络编程中fd_set类型重定义问题)