Winsock重新定义错误

Coo*_*ker 10 c++ windows winsock visual-studio-2010 redefinition

我正在编译Visual C++ 2010中的项目,但是我遇到了一些Winsock重定义的问题.

首先我得到:

syntax error : identifier 'SOCKADDR_STORAGE'
Run Code Online (Sandbox Code Playgroud)

但是,如果我包含winsock或winsock2或ws2tcpip,我会收到许多错误:

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition
error C2011: 'linger' : 'struct' type redefinition
Run Code Online (Sandbox Code Playgroud)

cto*_*tor 21

你的问题是,通过包括Windows.h,你也已经包括在内winsock.h.在这里,您的问题出现在包括winsock2.hws2tcpip.h将尝试重新定义其中的一些定义winsock.h

通过#define WIN32_LEAN_AND_MEANWindows.h包含之前使用,可以阻止编译器包含许多额外的东西Windows.h