티스토리 뷰
/C++ : Error C4996 (_WINSOCK_DEPRECATED_NO_WARNINGS, _CRT_SECURE_NO_WARNINGS)
Andrew Shin 2015. 7. 21. 10:38정말 별것 아닌 문제인데 이 문제로 인해 너무 힘들었고 필요이상으로 시간을 낭비하게 되었다.
나의 삽질경험을 이렇게 남김으로서, 많은 사람들이 삽질을 최소화 했으면 좋겠다.
로직상으로 오류가 없는 코드인데 컴파일을 해보면 위와같은 에러메세지가 뜨곤 한다.
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로 프로그램을 짜고 있기 때문에 적용이 안된것이 아닐까 추측해 본다.
마지막으로 저와 같이 마음고생을 많이 하신분이 이 페이지에서 답을 얻어가셨으면 좋겠습니다.
'개발노트 > 개발얘기' 카테고리의 다른 글
2015년 제 33회 형남과학상 공모 안내 (0) | 2015.08.12 |
---|---|
근황 (0) | 2015.07.27 |
메모 : 라즈베리파이에서 터미널 연결을 끊어도 프로그램이 작동되게 하기 (3) | 2015.07.18 |
메모 : 4구짜리 건전지 통에 건전지 2개만 넣고 돌리는 법 (0) | 2015.07.17 |
메모 : MPU6050 연결은 되는데 코드가 동작하지 않을때 (인풋/아웃풋에러) (0) | 2015.07.17 |
- Total
- Today
- Yesterday
- MFC
- 파일
- 리눅스
- 소켓
- 데이터베이스
- 악보
- 터미널
- 스레드
- 프로세스
- 액터
- UML
- Sort
- 티그널
- C++
- 파이썬
- 디렉터리
- 티라노 시그널
- 안드로이드
- 라즈베리파이
- socket
- C
- 쓰레드
- 자료구조
- 유즈케이스
- 클라이언트
- 파이썬예제
- 소켓 프로그래밍
- C/C++
- 클래스
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |