解决 Socket 和 Socket2 冲突出现的编译错误

来源:互联网 发布:知之的幸福之家 编辑:程序博客网 时间:2024/06/15 21:01

在程序的入口处定义宏:

#defineWIN32_LEAN_AND_MEAN

#include<Windows.h>

#include<winsock2.h> 

把这些放到最前面



问题表现为:

会出现N多错误,大部分为重定义,

稍微略举几个:

错误10 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 intc:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h437

错误9 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 intc:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h437

错误64 error C2375: “WSAStartup”: 重定义;不同的链接c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h2145

错误69 error C2375: “WSAUnhookBlockingHook”: 重定义;不同的链接c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h2231

错误65 error C2375: “WSACleanup”: 重定义;不同的链接c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h2163

错误56 error C2375: “socket”: 重定义;不同的链接c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h1986

错误4 error C2011: “sockaddr”: “struct”类型重定义c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h206

错误16 error C2011: “sockaddr_in”: “struct”类型重定义c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h577