'inet_addr':改用 inet_pton() 或 InetPton() 或定义 _WINSOCK_DEPRECATED_NO_WARNINGS
'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS
我正在使用 Visual Studio 2015 并尝试编译在我从 VS 2013 更新之前有效的代码。
'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS
在此代码中:
partner.sin_addr.s_addr = inet_addr(ip.c_str());
我尝试使用提到的函数,但它们未定义。我试图在许多不同的地方定义宏,但没有任何反应。另一个线程说我应该包括 Ws2tcpip.h 而不是 WinSock2 并添加 Ws2_32.lib。我已经添加了库,当我使用 include 时没有任何反应。这是怎么回事?!
ip字符串可以转换为in_addr structure with the InetPton函数。
它是这样使用的:
InetPton(AF_INET, strIP, &ipv4addr)
您需要包含 "Ws2tcpip.h" 头文件,使用库 "Ws2_32.lib" 和 DLL "Ws2_32.dll"。
确保在所有包含之前定义 _WINSOCK_DEPRECATED_NO_WARNINGS。
你可以试试
#pragma warning(disable:4996)
用于使用 inet_addr()
.
只是为了让转换更清楚。假设您有代码使用已弃用的 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 不兼容”错误。
我正在使用 Visual Studio 2015 并尝试编译在我从 VS 2013 更新之前有效的代码。
'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS
在此代码中:
partner.sin_addr.s_addr = inet_addr(ip.c_str());
我尝试使用提到的函数,但它们未定义。我试图在许多不同的地方定义宏,但没有任何反应。另一个线程说我应该包括 Ws2tcpip.h 而不是 WinSock2 并添加 Ws2_32.lib。我已经添加了库,当我使用 include 时没有任何反应。这是怎么回事?!
ip字符串可以转换为in_addr structure with the InetPton函数。 它是这样使用的:
InetPton(AF_INET, strIP, &ipv4addr)
您需要包含 "Ws2tcpip.h" 头文件,使用库 "Ws2_32.lib" 和 DLL "Ws2_32.dll"。
确保在所有包含之前定义 _WINSOCK_DEPRECATED_NO_WARNINGS。
你可以试试
#pragma warning(disable:4996)
用于使用 inet_addr()
.
只是为了让转换更清楚。假设您有代码使用已弃用的 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 不兼容”错误。