[英]'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS
我正在使用 Visual Studio 2015 並嘗試編譯在我從 VS 2013 更新之前已經工作的代碼。
'inet_addr':使用 inet_pton() 或 InetPton() 代替或定義 _WINSOCK_DEPRECATED_NO_WARNINGS
在這段代碼中:
partner.sin_addr.s_addr = inet_addr(ip.c_str());
我嘗試使用提到的函數,但它們未定義。 我試圖在許多不同的地方定義宏,但什么也沒發生。 另一個線程說我應該包含 Ws2tcpip.h 而不是 WinSock2 並添加 Ws2_32.lib。 我已經添加了庫,當我使用 include 時什么也沒發生。 這是怎么回事?!
只是為了使轉換清晰。 假設您有使用已棄用的inet_addr 的代碼,如本例所示:
RecvAddr.sin_addr.s_addr = inet_addr("192.168.1.1");
它可以轉換為較新的InetPton ,如下所示:
InetPton(AF_INET, _T("192.168.1.1"), &RecvAddr.sin_addr.s_addr);
_T宏可防止“ const char 與 PCWSTR 不兼容”錯誤。
你可以試試
#pragma warning(disable:4996)
用於使用inet_addr()
。
確保在所有包含之前定義 _WINSOCK_DEPRECATED_NO_WARNINGS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.