C++ Visual C++;
在Visual Studio 2013中为一个项目构建解决方案时,我注意到我收到了以下参考的警告: 警告C4996:'gethostbyname':改用getaddrinfo()或GetAddrInfoW(),或定义_WINSOCK_DEPRECATED_NO_警告以禁用不推荐的API警告src\core\JCSocket.cpp 77 1C++ Visual C++;,c++,visual-studio,deprecated,C++,Visual Studio,Deprecated,在Visual Studio 2013中为一个项目构建解决方案时,我注意到我收到了以下参考的警告: 警告C4996:'gethostbyname':改用getaddrinfo()或GetAddrInfoW(),或定义_WINSOCK_DEPRECATED_NO_警告以禁用不推荐的API警告src\core\JCSocket.cpp 77 1 警告C4996:'inet\u addr':改用inet\u pton()或inepton(),或定义_WINSOCK\u已弃用\u NO\u警告以禁用弃用
警告C4996:'inet\u addr':改用inet\u pton()或inepton(),或定义_WINSOCK\u已弃用\u NO\u警告以禁用弃用的API警告src\core\JCSocket.cpp 82 1
警告C4996:'inet\u addr':改用inet\u pton()或InetPton(),或定义_WINSOCK\u已弃用\u NO\u警告以禁用弃用的API警告src\core\JCSocket.cpp 121 1
警告C4996:“inet\u ntoa”:改用inet\u ntop()或inentop(),或定义\u WINSOCK\u不推荐的\u NO\u警告以禁用不推荐的API警告src\core\MuninNodeServer.cpp 64 1
警告C4996:“GetVersionExW”:已声明为不推荐使用的src\plugins\disk\DiskTimeMuninNodePlugin.cpp 48 1
警告C4996:“GetVersion”:已声明为不推荐使用的src\plugins\external\consolePie.cpp 12 1
警告C4996:“GetVersionExW”:已声明为不推荐使用的src\plugins\PerfCounterMuninNodePlugin.cpp 56 1
警告C4996:“GetVersionExW”:已声明为不推荐使用的src\plugins\uptime\UptimeMuninNodePlugin.cpp 34 1 每当我尝试将其更改为推荐的IntelliSense命令时,它都会说: IntelliSense:标识符“inet\u ntop”未定义\src\core\MuninNodeServer.cpp 64 31
这些错误告诉你该怎么做。微软就是这样
gethostbyname
->inet\u addr
->inet\u ntoa
->对于
GetVersionExW
和GetVersion
Microsoft建议使用适当的。Visual Studio会告诉您此警告,因为您试图使用不安全函数,这意味着包含函数体
很明显,主体可能包含签名溢出,并且可能会出现另一个编译错误,或者在较新的库中可能不支持它
顺便说一下,这是关于如何使用这个函数的
只需添加以下行即可禁用警告
#pragma warning( disable : 4996)
在代码的顶部
这将禁用警告错误代码4996,并且工作正常,不会出现任何问题
另一种方式:
当我更改例如inet\u ntoa->inet\u ntop时,仍然会出现一个错误,即新替换的命令未定义。我该在哪里定义它?@Dean的意思是你仍然会犯同样的错误?如果是这样,请使用Ctrl+Shift+F并在解决方案中搜索所有源文件,以查找
gethostname
、inet\u addr
、inet\u ntoa
、GetVersionExW
和GetVersion
。另外,请确保重新生成了代码Ctrl+F7。感谢您的提示,尝试仅替换一个代码,但仍然出现错误1错误C3861:“inet\u ntop”:找不到标识符\src\core\MuninNodeServer。cpp@Dean请查看我在更换每个功能时提供的链接。对于inet\u ntop
您需要在Ws2\u 32.lib/dll中包含ws2tcpp.h和link。对于GetVersion
和GetVersionEx
,请参阅stackoverflow线程。我认为您的答案不完整,您只需给出一个忽略警告的解决方案(我知道问题不清楚)。问题可能出在其他地方:例如,使用更新版本的lib(他说他遵循了建议,但不起作用)。但这是我的看法。请编辑您的答案,删除一些粗体字,以便更容易阅读/理解。很抱歉..我编辑答案是为了更清晰更多信息: