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>