Winsock重新定义错误

我正在编译Visual C ++ 2010中的一个项目,但是我有一些Winsock重新定义的问题。

首先我得到:

syntax error : identifier 'SOCKADDR_STORAGE' 

但是,如果我包括winsock或winsock2或ws2tcpip我会得到许多像这样的错误:

 error C2011: 'sockaddr' : 'struct' type redefinition error C2011: 'WSAData' : 'struct' type redefinition error C2011: 'linger' : 'struct' type redefinition 

Solutions Collecting From Web of "Winsock重新定义错误"

你的问题是通过包含Windows.h ,你也已经包括winsock.h 。 这是你的问题,因为包括ws2tcpip.hws2tcpip.h将尝试重新定义winsock.h一些定义

通过在Windows.h之前使用#define WIN32_LEAN_AND_MEAN包括停止编译器包含很多Windows.h附带的额外内容