Visual Studio에 정의된 매크로 _MSC_VER는 현재 사용 중인 Visual Studio의 버전을 나타냅니다. 제 생각에는 Visual Studio의 버전이 아닌, MFC의 버전을 나타낼 줄 알았는데 그게 아니더라구요.


아래 2장의 캡쳐는 그걸 설명한 겁니다.

OiProtractor라는 임의의 프로젝트를 비주얼 스튜디오 2013으로 연 뒤, 프로젝트 속성의 플랫폼 도구 집합을 한 번은 2013(12.0)으로, 또 한 번은 010(10.0)바꾸고 버전을 확인하니 둘 다 12.0을 가르키는 1800이 나왔습니다. IDE버전과 MFC버전 간의 관계 개념이 부족하면 헷갈릴 수 있습니다만, 아무튼 MFC 버전이 12.0의 프로젝트든 10.0의 프로젝트든, Visual Studio 2013으로 열면 _MSC_VER는 현재 사용중인 IDE의 버전 1800(12.0)이 나왔습니다.


저도 쓰다보니 헷갈리는 데 -.- 틀린 부분이 있다면, 알려주시면 감사하겠습니다.




Visual Studio 버전별 _MSC_VER 값 등의 표

 패키지 이름

 컴파일러 버전

 _MSC_VER

 MFC 버전

 닷넷 버전

 출시

 Microsoft C 5.0 / Quick-C 1.0

 5.0

 500

 -

 -

 1987년

 Microsoft C 5.1 / Quick-C 2.0

 5.1

 500

 -

 -

 1989년

 Microsoft C 6.0

 6.0

 600

 -

 -

 1989년

 Microsoft C/C++ 7.0

 7.0

 700

 1.0

 -

 1992년

 Visual C++ 1.0 / Quick-C 2.5

 8.0

 800

 2.0

 -

 1993년

 Visual C++ 1.5

 8.0

 800

 2.5

 -

 1993년

 Visual C++ 1.52c

 8.0

 800

 2.5

 -

 1994년

 Visual C++ 2.0

 9.0

 900

 3.0

 -

 1995년

 Visual C++ 2.1

 9.1

 900

 3.1

 -

 1995년

 Visual C++ 2.2

 9.2

 900

 3.2

 -

 1995년

 Visual C++ 4.0

 10.0

 1000

 4.0

 -

 1996년

 Visual C++ 4.1

 10.1

 1010

 4.1

 -

 1996년

 Visual C++ 4.2

 10.2

 1020

 4.2

 -

 1996년

 Visual C++ 5.0

 11.0

 1100

 4.21

 -

 1997년

 Visual C++ 6.0

 12.0

 1200

 6.0

 -

 1998년

 Visual C++ .NET 2002 (7.0)

 13.00

 1300

 7.0

 1.0

 2002년

 Visual C++ .NET 2003 (7.1)

 13.10

 1310

 7.1

 1.1

 2003년

 Visual C++ 2005 (8.0)

 14.00.50727.762

 1400

 8.0

 2.0

 2005년

 Visual C++ 2008 (9.0)

 15.00.30729.01

 1500

 9.0

 3.5

 2007년

 Visual C++ 2010 (10.0)

 16.00.40219.01

 1600

 10

 4.0

 2010년

 Visual C++ 2012 (11.0)

 17.00.60315.1

 1700

 11

 4.5

 2012년

 Visual C++ 2013 (12.0)

 18.0.21005.1

 1800

 12

 4.5.1

 2013년

출처 : wikipedia


상기의 표를 참고하여 Visual Studio 버전에 따라 코드를 달리 작성할 수 있습니다.

저는 주로 C++11의 코드를 작성할 때 쓰는 편입니다.

12.0 버전에서는 C++11코드로, 10.0 버전 이하에서는 C++98 버전으로 한다던지 말입니다.


+ Recent posts