VS2015报错C4996处理,error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_D
2017-10-26 16:19
666 查看
问题:
在vs2015中socket编程时,在编下如下代码时:
[cpp]
view plain
copy
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("10.224.5.27");
clientService.sin_port = htons(7008);
第三行会报错:
error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
问题出现的原因:
在VS2013以后的版本中,增加了inet_pton()、InetPton()之类的新函数,用于IP地址在“点分十进制”和“二进制整数”之间转换,并且能够处理ipv4和ipv6。而inet_addr是老函数,高版本VS在编译时默认使用了新函数,所以会报该错误。
问题的解决:
1、用所提示的新函数代替inet_addr函数。
2、修改VS配置,告诉它我就要旧函数,修改方法:项目->属性->C/C++->常规->SDL检查,将“是”改为“否”,即可。
在vs2015中socket编程时,在编下如下代码时:
[cpp]
view plain
copy
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("10.224.5.27");
clientService.sin_port = htons(7008);
第三行会报错:
error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
问题出现的原因:
在VS2013以后的版本中,增加了inet_pton()、InetPton()之类的新函数,用于IP地址在“点分十进制”和“二进制整数”之间转换,并且能够处理ipv4和ipv6。而inet_addr是老函数,高版本VS在编译时默认使用了新函数,所以会报该错误。
问题的解决:
1、用所提示的新函数代替inet_addr函数。
2、修改VS配置,告诉它我就要旧函数,修改方法:项目->属性->C/C++->常规->SDL检查,将“是”改为“否”,即可。
相关文章推荐
- error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WAR
- VS2015/2013 无法使用'inet_ntoa': Use inet_ntop() or InetNtop() instead or define
- VS2013 无法使用'inet_ntoa': Use inet_ntop() or InetNtop() instead or define
- VS2015/2013 无法使用'inet_ntoa': Use inet_ntop() or InetNtop() instead or define
- VS2013 无法使用'inet_ntoa': Use inet_ntop() or InetNtop() instead or define
- 错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use . See online help for details.
- : error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- inet_addr函数处理IP地址需要注意的问题
- Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tool
- 导入工程错误Androidrequires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please useAndroid T
- error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. T
- 错误 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
- 问题error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. 的解决
- sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA
- WinSock Recvfrom() now returns WSAECONNRESET instead of blocking or timing out
- Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tool
- Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结
- 已解决error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.