解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题

Posted sanqima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题相关的知识,希望对你有一定的参考价值。

    今天在使用Windows Socket C++编程时,弹出"‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS"问题,如图(1)所示:

图(1) Socket2报兼容性错误

    问题原因:socket2已经丢弃inet_ntoa()、inet_addr()这些老版本函数,当在Socket2上调用这些老版本(Socket1版本)函数时,warning变成error了。
    解决方法:在代码开头加个 #pragma warning(disable:4996) ,用于屏蔽warning,提高兼容性。

修改前

#include <stdio.h>  
#include <winsock2.h>  
#include <Ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")  

修改后

#include <stdio.h>  
#include <winsock2.h>  
#include <Ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")  

//添加此句,屏蔽"warning作为error", 提高兼容性
#pragma warning(disable:4996) 

以上是关于解决“‘inet_addr‘: Use inet_pton() or InetPton() instead “问题的主要内容,如果未能解决你的问题,请参考以下文章

vs2008解决方案资源管理器不显示解决方案

什么是 沙盒解决方案

解决PowerShell乱码问题

如何解决解决方案中现有项目的c#CS0006错误

关于问题解决与事件解决的思考

「解决方案架构」解决方案架构概述