今天在使用Windows Socket C++编程时,弹出"‘inet_addr’: Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS"问题,如图(1)所示:
问题原因: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)