kyuseo의 게임 프로그래밍

WINVER / _WIN32_WINDOWS / _WIN32_WINNT 정의하기 본문

C++ 개발

WINVER / _WIN32_WINDOWS / _WIN32_WINNT 정의하기

kyuseo 2007. 11. 1. 16:56

개요..

 

stdafx.h 최상단에 사용가능한 윈도우(Window) 및 익스플러러(Explorer) 버전을 define 함에 따라, 사용가능 한 라이블러리 및 구조체가 바뀝니다. 따라서 지원하는 최소한의 운영체계를 결정하고 그에 따른 WINVER 을 선언하여 사용하면 해당 윈도우 이상 지원됩니다.

 

예) Windows 98 / Explorer 5.0 지원 할 경우 아래와 같이 정의한다.

#define WINVER 0x0410

#define _WIN32_IE 0x0500

 

 

MSDN 에 정의된 정보

 

Minimum system required

Macros to define

Windows Server 2003

_WIN32_WINNT>=0x0502

WINVER>=0x0502

Windows XP

_WIN32_WINNT>=0x0501

WINVER>=0x0501

Windows 2000

_WIN32_WINNT>=0x0500

WINVER>=0x0500

Windows NT 4.0

_WIN32_WINNT>=0x0400

WINVER>=0x0400

Windows Me

_WIN32_WINDOWS=0x0500

WINVER>=0x0500

Windows 98

_WIN32_WINDOWS>=0x0410

WINVER>=0x0410

Windows 95

_WIN32_WINDOWS>=0x0400

WINVER>=0x0400

Internet Explorer 6.0

_WIN32_IE>=0x0600

Internet Explorer 5.6

_WIN32_IE>=0x0560

Internet Explorer 5.01, 5.5

_WIN32_IE>=0x0501

Internet Explorer 5.0, 5.0a, 5.0b

_WIN32_IE>=0x0500

Internet Explorer 4.01

_WIN32_IE>=0x0401

Internet Explorer 4.0

_WIN32_IE>=0x0400

Internet Explorer 3.0, 3.01, 3.02

_WIN32_IE>=0x0300

 

 

예제

 

// stdafx.h : 자주사용하지만자주변경되지는않는

// 표준시스템포함파일및프로젝트관련포함파일이

// 들어있는포함파일입니다.

 

#pragma once

 

#ifndef VC_EXTRALEAN

#define VC_EXTRALEAN        // 거의사용되지않는내용은Windows 헤더에서제외합니다.

#endif

 

// 아래지정된플랫폼에우선하는플랫폼을대상으로하는경우다음정의를수정하십시오.

// 다른플랫폼에사용되는해당값의최신정보는MSDN을참조하십시오.

#ifndef WINVER        

#define WINVER 0x0500    // 윈도우 2000 이상 지원

#endif

 

#ifndef _WIN32_WINNT        

#define _WIN32_WINNT 0x0400    // 윈도우 NT 4.0 이상 지원

#endif                        

 

#ifndef _WIN32_WINDOWS    

#define _WIN32_WINDOWS 0x0410 // 윈도우 98 이상 지원

#endif

 

#ifndef _WIN32_IE        

#define _WIN32_IE 0x0400    // IE 4.0 이상 지원

#endif