inet_ntoa, inet_addr error C4996:
1>E:\xxx.cpp(124,1): error C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings 1>E:\bbb.cpp(206,33): error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
해결방법
_WINSOCK_DEPRECATED_NO_WARNINGS define
deprecated 된 코드사용 을 에러나 경고 없이 가능하게 한다
inet_ntoa > inet_ntop/InetNtop 그리고 inet_addr > inet_pton/InotPton 함수로 변경
더 이상 사용하지 말라고 하는 함수를 신규 함수로 변경한다
기존
// inet_ntoa auto ipAddr = inet_ntoa(addr.sin_addr); //inet_addr auto addr = inet_addr(ipAddress);
변경
#include <WS2tcpip.h> // inet_ntoa char clientIP[20] = { 0, }; if (inet_ntop(AF_INET, &addr.sin_addr, clientIP, sizeof(clientIP)) == NULL) { // 예외처리 } //inet_addr ULONG addr; auto result = inet_pton(AF_INET, ipAddress, &addr); if (result != SOCKET_ERROR) { // -1 m_SockAddr.sin_addr.s_addr = addr; }
헤더 추가 후 위 코드와 같이 수정 시 정상 컴파일 되는 것을 확인할 수 있다
이외에도 sdl 검사를 제거하는 방법도 있지만 가급적이면 컴파일러가 사용하지 deprecate 하는 경우 코드를 변경해주도록 하자
댓글 남기기