Winsock重新定义错误

时间:2012-07-15 21:02:02

标签: c++ windows visual-studio-2010 winsock redefinition

我正在使用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

1 个答案:

答案 0 :(得分:20)

您的问题是,通过加入Windows.h,您还可以加入winsock.h。正是在这里出现问题,包括winsock2.hws2tcpip.h会尝试重新定义winsock.h

中的某些定义

#define WIN32_LEAN_AND_MEAN包含之前使用Windows.h,您可以阻止编译器包含Windows.h附带的大量额外内容