在项目的Visual Studio 2013中构建解决方案时,我注意到我收到以下引用的警告:
警告C4996:' gethostbyname':改用getaddrinfo()或GetAddrInfoW()或定义_WINSOCK_DEPRECATED_NO_WARNINGS以禁用已弃用的API警告src \ core \ JCSocket.cpp 77 1
警告C4996:' inet_addr':使用inet_pton()或InetPton()代替或定义_WINSOCK_DEPRECATED_NO_WARNINGS以禁用已弃用的API警告src \ core \ JCSocket.cpp 82 1
警告C4996:' inet_addr':使用inet_pton()或InetPton()代替或定义_WINSOCK_DEPRECATED_NO_WARNINGS以禁用已弃用的API警告src \ core \ JCSocket.cpp 121 1
警告C4996:' inet_ntoa':使用inet_ntop()或InetNtop()代替或定义_WINSOCK_DEPRECATED_NO_WARNINGS以禁用不推荐使用的API警告src \ core \ MuninNodeServer.cpp 64 1
警告C4996:' GetVersionExW':声明已弃用src \ plugins \ disk \ DiskTimeMuninNodePlugin.cpp 48 1
警告C4996:' GetVersion':声明已弃用src \ plugins \ external \ ConsolePipe.cpp 12 1
警告C4996:' GetVersionExW':声明已弃用src \ plugins \ PerfCounterMuninNodePlugin.cpp 56 1
警告C4996:' GetVersionExW':声明已弃用src \ plugins \ uptime \ UptimeMuninNodePlugin.cpp 34 1
每当我尝试将其更改为推荐的IntelliSense命令时,它会说:
IntelliSense:标识符" inet_ntop"未定义\ src \ core \ MuninNodeServer.cpp 64 31
答案 0 :(得分:3)
这些错误告诉你该怎么做。微软很不错。
gethostbyname
- >getaddrinfo
inet_addr
- >inet_pton
inet_ntoa
- >inet_ntop
至于GetVersionExW
和GetVersion
Microsoft建议使用相应的Version Helper Function。
答案 1 :(得分:0)
Visual Studio告诉您此警告导致您尝试使用不安全功能,这意味着包含功能正文
并且主体显然可以包含已签名的溢出,并且可能会出现另一个编译错误,或者可能在新版本库中不支持
顺便说一下,关于你如何使用这个功能只需添加以下行
即可禁用警告#pragma warning( disable : 4996)
代码的顶部
禁用警告错误代码 4996 ,并且可以正常运行。
另一种方式:
注意:我更喜欢 代码方式 ,如果您不是,那么学习起来会更好 在visual studio中编程或制作头文件 你的图书馆