我正在使用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
答案 0 :(得分:20)
您的问题是,通过加入Windows.h
,您还可以加入winsock.h
。正是在这里出现问题,包括winsock2.h
或ws2tcpip.h
会尝试重新定义winsock.h
在#define WIN32_LEAN_AND_MEAN
包含之前使用Windows.h
,您可以阻止编译器包含Windows.h
附带的大量额外内容