作者:朱金灿​​​​


     windows.h和winsock2.h存在有类型重定义,往往体现在VC程序中包含winsock2.h时出现编译错误:

error C2011: “sockaddr_in”:“struct”类型重定义


网友提出的解决办法是将

#include<windows.h>之前 #include <winsock2.h>


这个不是好的解决办法,因为很多程序比如MFC程序它本身就不是直接包含windows.h,你找不到它的包含位置。好的解决办法是添加WIN32_LEAN_AND_MEAN这个预处理器,具体如下图:

“sockaddr”: “struct”类型重定义的错误的解决办法_c程序

测试环境:

64位win7,VS2015