티스토리 뷰

정말 별것 아닌 문제인데 이 문제로 인해 너무 힘들었고 필요이상으로 시간을 낭비하게 되었다.

나의 삽질경험을 이렇게 남김으로서, 많은 사람들이 삽질을 최소화 했으면 좋겠다.




로직상으로 오류가 없는 코드인데 컴파일을 해보면 위와같은 에러메세지가 뜨곤 한다.


error C4996 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings


error C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.


각각 오류의 내용이다. 공통점은 에러의 번호가 C4996 이라는 것이다.


구글링을 해보니 문서의 처음에 #define _WINSOCK_DEPRECATED_NO_WARNINGS 혹은 #define _CRT_SECURE_NO_WARNINGS 을 입력하면 정상실행 될것이라는 단서를 찾을 수 있었으나 그대로 입력했을때는 적용되지 않았다.


아마 이 페이지까지 찾아온 여러분도 위와 같은 상황일 거라고 판단, 일단 방법부터 알려 드리겠다.



비주얼 스튜디오의 좌측의 솔루션 탐색기에서 (클래스뷰 아님) 프로젝트 이름을 오른쪽 클릭하여 속성으로 들어가서 위와같이 C/C++ 메뉴의 전처리기에서 전처리기 정의 란에 define을 해준다.


_WINSOCK_DEPRECATED_NO_WARNINGS; _CRT_SECURE_NO_WARNINGS;

위와 같이 입력하면 되겠다. 각 명령어는 사이사이를 세미콜론으로 구분하기 때문에 하나의 명령 끝에는 세미콜론을 붙여주는것을 잊지 말것.


이제 문제가 일어난 원인에 대하여 알아보자면 다름이 아니라 비주얼 스튜디오가 2012버전 이후로 안정성을 강화하기 위해 기존에 warning으로 잡히던 것들을 컴파일에러로 인식하기 시작한것.. 그래서 빌드가 안된 것이다.


별것도 아닌것에 정말 마음고생 많이했다, 자료도 많이 없고, 아마 내가 봤던 글들은 전부 C/C++에만 적용되는 글 같고 나는 지금 MFC로 프로그램을 짜고 있기 때문에 적용이 안된것이 아닐까 추측해 본다.


마지막으로 저와 같이 마음고생을 많이 하신분이 이 페이지에서 답을 얻어가셨으면 좋겠습니다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함