ws2tcpip winsock2 C2065 undeclared identifier visual studio 2019

"在Visual Studio 2019环境下,遇到编译错误涉及ws2tcpip.h、ws2def.h和winsock2.h头文件的重新定义问题。解决方法包括调整头文件引入顺序,确保先包含winsock2.h,以及定义WIN32_LEAN_AND_MEAN宏避免Windows头文件包含WINSOCK。此外,错误C2065和C3861可能指示未声明的标识符,而C2143是语法错误,提示缺少'}
摘要由CSDN通过智能技术生成

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值