1. 程式人生 > >Win32 網路程式設計中fd_set型別重定義問題

Win32 網路程式設計中fd_set型別重定義問題

問題: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>