본문 바로가기

3.구현/VC++

VC에서 운영체제별 매크로 선언

작성일: 2009.05.15 (http://ospace.tistory.com/), ospace114@엠팔.컴

VC에서 운영체제별 호환 프로그램을 작성시 꼭 필요한 전처리기 선언해야한다. 보통 일반적으로 전처리기 사용하지 않으면 현재 컴파일되는 윈도우 버전이 선언된다.

사용되는 매크로는 다음과 같다.

  • WINVER
    윈도우 버전을 사용한다. 현재 사용되는 윈도우 버전을 말한다.
    0x410은 major 버전은 4이고 minor는 10이다. 즉 Windows 98 이전을 말한다.`
  • _WIN32_WINDOWS
    앞의 WINVER도 같은 의미이다.
    `0x410이면 앞의 Windows 98과 같다.
  • _WIN32_WINNT
    Windows NT 버전을 가리킨다. 만약 Windows ME 이전이라면 선언하면 안된다.
    `0x400 이면 Windows NT 4.0 이전을 가리킨다.
  • _WIN32_IE
    인터넷 익스플로러 버전을 말한다. 간혹 인터넷 익프를로러에서 제공되는 API를 사용하는 경우 사용된다. 일반적인 어플리케이션을 사용하는 경우 IE용 API 사용을 권장하지 않는다.
    0x400이면 IE 4.0이전을 말한다.

이를 정리해서 표시하면,

#ifndef WINVER                // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0410        // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT        // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400        // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif                        

#ifndef _WIN32_WINDOWS        // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE            // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400    // Change this to the appropriate value to target IE 5.0 or later.
#endif

윈도우 버전에 대한 정보는 아래 링크의ㅣ 테이블에서 Windows Vesion 항목을 참고하면 된다.

반응형