错误描述

错误 C4996 ‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings

错误原因已经说得比较清楚, inet_addr是已经被舍弃的API,建议我们使用inet_pton或者InetPton替代

解决方案

解决方案有两种

1、规避

直接在使用该函数的文件头加入以下内容进行屏蔽,虽然API已经被舍弃,但是还是可以正常运行

#pragma warning(disable:4996)

2、使用新的API

先假设我们的原先调用方式如下:

 const char* ip = "127.0.0.1"struct sockaddr_in addr;...addr.sin_addr.s_addr = inet_addr(ip);

2.1、inet_pton

我们可以先看下对该函数的描述

The InetPton function converts an IPv4 or IPv6 Internet network address in its standard text presentation form into its numeric binary form.

即将我们传入字符值IPv4或IPv6地址转换成对应二进制格式,即如下代码

inet_pton(AF_INET, ip, &addr.sin_addr.s_addr);
//InetPton(AF_INET, (PCWSTR)ip, &addr.sin_addr.s_addr);

AF_INET表示IPv4地址,ip就是我们传入的地址,addr.sin_addr.s_addr就是我们需要保存转换完成之后二进制的地址

第二种方法注意PCWSTR实际上是一个wchar_t,这里强转有时运行时会报地址错误,可自行通过其他方法进行安全转换

inet_addr报错相关推荐

  1. Visual Studio 2022 配置 ws2_32.lib socket编程 以及error C4996: ‘inet_addr‘ 报错处理

    右击项目选择属性 然后依次选择 链接器 输入 附加依赖项 然后点编辑进去 然后就可以进行启动运行项目了 我使用的是Visual Studio 2022,因为也是新手第一次学习socket编程,然后在网 ...

  2. bug系列(二)release版本DLL报错,debug版本正常

    一.链接错误 编译成release版本时,提示 Linking... nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external sym ...

  3. 解决gcc报错:error: implicit declaration of function ‘inet_addr’ [-Werror=implicit-function-declaration]

    此文首发于我的个人博客:解决gcc报错 error implicit declaration of function 'inet_addr' [-Werror=implicit-function-de ...

  4. VS2015报错C4996处理

    问题: 在vs2015中socket编程时,在编下如下代码时: sockaddr_in clientService;clientService.sin_family = AF_INET;clientS ...

  5. 编译vs2017项目报错

    报错:error C2061: 语法错误: 标识符"BOOL" 解决方案: 添加头文件:#include <WinDef.h> 报错: fatal error C118 ...

  6. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  7. Access to XMLHttpRequest at file from origin ‘null‘ has been blocked by CORS policy谷歌浏览器本地打开项目js文件报错

    Access to XMLHttpRequest at 'file:///xxxxx/PQ.BaseInfo.proto' from origin 'null' has been blocked by ...

  8. go build 编译报错 missing go.sum entry for module providing package

    go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy 再次编译,就可 ...

  9. docker报错:driver failed programming external connectivity on endpoint, iptables:No chain by that name

    docker 报错: Error response from daemon: Cannot restart container hello: driver failed programming ext ...

最新文章

  1. mysql model only_full_group_by_MySql版本问题sql_mode=only_full_group_by的完美解决方案
  2. php插件 pycharm_原来Pycharm中有这么多好用的插件|Pycharm精选插件
  3. 前端学习(1698):前端系列javascript之原型链和instance
  4. Linux中fdisk对应的c函数,linux下fdisk命令实战案例之详解
  5. 计算机基础理论知识的论文,计算机基础毕业论文
  6. Docker安装Redis(docker-compose.yml)
  7. 苹果地图副总裁_苹果地图表现糟糕 iOS副总裁福斯特难辞其咎
  8. HDU1799 循环多少次?【打表】
  9. 黑马程序猿————OC在Foundation框架结构和字符串
  10. Refactoring: Encapsulate Collection
  11. PilotEdit 破解版下载|PilotEdit(文本编辑器) 中文破解版 v11.8下载(含注册机)
  12. 让子弹飞经典台词|让子弹飞经典语录
  13. java jdom解析html_Javaweb中使用Jdom解析xml的方法
  14. [读史思考] 魏王真的被张仪忽悠瘸了吗?
  15. Python:实现first come first served先到先得算法(附完整源码)
  16. PR 多轨道字幕设置
  17. Windows下桌面便签小工具--StickyPad简单使用教程(非StickyNotes)
  18. matlab k线图快速画出红色阳线绿色阴线
  19. 东大22春《大学英语(四)》在线平时作业1_100分答案非答案
  20. 通过PS把月亮“搬”到自己的床上

热门文章

  1. 在html页面上内容竖着显示
  2. 通俗易懂详解机器学习中的最大似然估计
  3. 中兴通讯加入星策开源社区 携手推动企业智能化转型建设
  4. 云南省初中计算机说课稿,云南省实验教材《信息技术》说课稿范文(9页)-原创力文档...
  5. 《权威指南》笔记 -- 8.3 函数的实参和形参
  6. 一种实现个人微信二维码收款接口的方法
  7. 方便实用的--股票涨跌停价计算器
  8. Hadoop HA HDFS启动 NameNode启动失败解析
  9. August 21st 2016 Week 35th Sunday
  10. 武汉意向岗位(二)——中国农业银行研发中心