새로운 데스크탑에 Visual Studio를 설치하고 약간의 코드를 짜고 있었습니다.
평소처럼 테스트를 위해 getch() 함수를 사용해 돌려보려고 했는데 컴파일 에러가 나더군요.
error C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
지금껏 코딩하면서 보지못한 에러였습니다.
에러를 해석해보면
이 항목에 대한 POSIX 이름은 더이상 사용되지 않는다고 합니다. 대신에, ISO C++ 준수하는 이름을 사용하라네요 : _getch.
POSIX는 유닉스 OS에 기반을 두고 있는 표준 OS 인터페이스입니다. 이 때 사용된 함수 이름들은 사용 못하게 하는건가요??..
아무튼 아래와 같은 전처리문을 사용해주면 이러한 에러는 발생하지 않습니다.
# if defined(_MSC_VER) // Virtual C++ 버전
// _CRT_SECURE_NO_DEPRECATE 가 선언되어 있지 않으면 선언
# ifndef _CRT_SECURE_NO_DEPRECATE
# define _CRT_SECURE_NO_DEPRECATE (1)
# endif
# pragma warning(disable : 4996) // 4996 경고 비활성화
# endif
'My Study > Programming&Theory' 카테고리의 다른 글
Windows Clipboard : GetClipboardData (2) | 2013.06.06 |
---|---|
Windows Clipboard : OpenClipboard (2) | 2013.06.03 |
Bug Check 0x9A : SYSTEM_LICENSE_VIOLATION (2) | 2013.05.04 |
Windows Session, Station, Desktop (2) | 2013.05.01 |
Windows 7 PID는 어디서 결정되는가? (1) | 2013.03.17 |