1================编译环境vs2019 用到下面的头
用到如下头文件
-
ws2tcpip.h
-
ws2def.h
-
winsock2.h
2.=======================错误消息
报错 redefinition 等等
error C2065: undeclared identifier
error C3861: identifier not found
?
ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition
error C3861: identifier not found
?
ws2def.h(384) : error C2143: syntax error : missing '}' before 'constant'
3==========================原因和解决方案
重点是如何引入头到visual studio 中。
1. 引入头的顺序
必须#includes winsock2.h 之前 ws2tcpip.h,否则将出现编译错误,例如“ ip_mreq :: imr_multiaddr使用未定义的struc in_addr”和“ Byte不是in6_addr :: __ unnamed的成员”
2. WIN32_LEAN_AND_MEAN宏
//----------------------------------------------------------------------------------
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
WIN32_LEAN_AND_MEAN宏可防止WINDOWS.H标头包含WINSOCK.H。