msvc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 12 Apr 2016 19:57:23 +0300
changeset 1949 37b696788574
parent 1948 bbbcf97abedd
child 1950 4756c6a2e0ac
permissions -rw-r--r--
cl.exe versions.

.. -*- coding: utf-8; auto-fill-function: nil -*-

==========================
 Microsoft visual studio.
==========================
.. contents::
   :local:

Downloads.
==========

MSVC.
-----

Starting from 2008 MSDN no longer distributed in .iso files. To install help use
"Help Library Manager".

  http://vshelpdownloader.codeplex.com/
                Tool for downloading base Visual Studio 2010 MSDN package for
                offline first installation.

SDK.
----

  http://msdn.microsoft.com/en-us/windows/bb980924.aspx
                Windows SDK

Register SDK to Visual Studio.
==============================

To check all available version::

  cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\
  cmd> WindowsSdkVer.exe -version

To check current used version::

  cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\
  cmd> WindowsSdkVer.exe -current

Register SDK::

  cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\
  cmd> WindowsSdkVer.exe -version:v6.1

MSVC versions.
==============

=================== ======= ======= ========= ======= ======== ======= ========
Product             Release     C++  _MSC_VER     MFC _MFC_VER     ATL _ATL_VER
|                   date    version           version          version
=================== ======= ======= ========= ======= ======== ======= ========
C 1.0                                     100
C 2.0                                     200
C 3.0                                     300
C 4.0                                     400
C 5.0                                     500
C 6.0                  1990               600
C/C++ 7.0              1992               700     1.0   0x0100
Visual C++ 1.0         1993     1.0       800     2.0   0x0200
Visual C++ 1.1         1993     1.1
Visual C++ 1.5         1993     1.5       850     2.5   0x0250
Visual C++ 1.51                 1.5
Visual C++ 1.52                1.52
Visual C++ 1.52b              1.52b
Visual C++ 1.52c              1.52c
Visual C++ 2.0                  2.0       900     3.0   0x0300
Visual C++ 2.1                  2.1
Visual C++ 2.2                  2.2
Visual C++ 4.0         1995     4.0      1000     4.0   0x0400
Visual C++ 4.2                  4.2      1020     4.2   0x0420
|                                                                  1.0   0x0100
|                                                                  1.1   0x0110
|                                                                  2.0   0x0200
Visual Studio 97       1997     5.0      1100    4.21   0x0421     2.1   0x0210
Visual Studio 6.0      1998     6.0      1200     6.0   0x0600     3.0   0x0300
VS .NET 2002           2002     7.0      1300     7.0   0x0700     7.0   0x0700
VS .NET 2003           2003     7.1      1310     7.1   0x0710     7.1   0x0710
Visual Studio 2005     2005     8.0      1400     8.0   0x0800     8.0   0x0800
Visual Studio 2008     2008     9.0      1500     9.0   0x0900     9.0   0x0900
Visual Studio 2010     2010    10.0      1600    10.0   0x0A00    10.0   0x0A00
Visual Studio 2012     2012    11.0      1700    11.0   0x0B00    11.0   0x0B00
Visual Studio 2013     2013    12.0      1800    12.0   0x0C00    12.0   0x0C00
Visual Studio 2015     2015    14.0      1900    14.0   0x0E00    14.0   0x0E00
=================== ======= ======= ========= ======= ======== ======= ========

With ``cl.exe`` versions:

========================== ==== ======== =====
NAME                       VER  _MSC_VER  cl
========================== ==== ======== =====
Visual Studio 6.0 (1998)   6.0      1200
Visual Studio .NET (2002)  7.0      1300
Visual Studio .NET 2003    7.1      1310
Visual Studio 2005         8.0      1400 14.00
Visual Studio 2008         9.0      1500 15.00
Visual Studio 2010         10.0     1600 16.00
========================== ==== ======== =====

To check version from command line::

  cmd# cl /help 2>&1 | head -n 1
  Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x8
  cmd# cl /help 2>&1 | head -n 1 | sed "s=.*Version \([0-9]*\)\.\([0-9]*\)\..*=\1.\2="
  16.00

Reference:

http://mariusbancila.ro/blog/2015/08/12/version-history-of-vc-mfc-and-atl/
  Version history of VC MFC and ATL
https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History
  VS History
https://en.wikipedia.org/wiki/List_of_Microsoft_codenames#Visual_Studio_family
  Visual Studio family

MFC versions.
=============

  ================ ===================
  MFC version      Visual C++ version
  ================ ===================
  1.0              Microsoft C/C++ 7.0
  2.0              Visual C++ 1.0
  2.5              Visual C++ 1.5
  3.0              Visual C++ 2.0
  3.1              Visual C++ 2.1
  3.2              Visual C++ 2.2
  4.0              Visual C++ 4.0
  4.1              Visual C++ 4.1
  4.2              Visual C++ 4.2
  4.21 (mfc42.dll) Visual C++ 5.0
  6.0 (mfc42.dll)  Visual C++ 6.0
  7.0 (mfc70.dll)  Visual C++ .NET 2002
  7.1 (mfc71.dll)  Visual C++ .NET 2003
  8.0 (mfc80.dll)  Visual C++ 2005
  ================ ===================

http://msdn.microsoft.com/en-us/library/3z02ch3k.aspx
  ATL and MFC Version Numbers

ALT version.
============

  ============= ===================================================
  ATL version   Visual C++ version
  ============= ===================================================
  1.0, 1.1, 2.0 None. Released to Web in Visual C++ 4.x time frame.
  3.0           Visual C++ 6.0
  7.0           Visual C++ .NET 2002
  7.1           Visual C++ .NET 2003
  8.0           Visual C++ 2005
  ============= ===================================================

http://msdn.microsoft.com/en-us/library/3z02ch3k.aspx
  ATL and MFC Version Numbers

MS SDK version.
===============

===================================================== =====
Description                                             VER
===================================================== =====
Included in Visual Studio 2005                         v5.0
Included in Visual Studio 2008                        v6.0A
SDK Update for Windows Vista
SDK for Windows Server 2008 and .NET Framework 3.5     v6.1
Included in Visual Studio 2010 Express                v7.0A
SDK for Windows 7 and .NET Framework 3.5 SP 1          v7.0
SDK for Windows 7 and .NET Framework 4                 v7.1
===================================================== =====

  http://msdn.microsoft.com/en-us/windows/dd146047.aspx
                Which SDK do I install?
  http://en.wikipedia.org/wiki/Microsoft_Windows_SDK#Versions
                Microsoft Windows SDK Versions

MSVC and SDK compatibility.
===========================

v6.1: MSVC 2005, 2008 + express
v7.0: MSVC 2008 + express
v7.1: MSVC 2005, 2008, 2010 + express

Build MSVC project from command line.
=====================================
::

  cmd> cd %proj%
  cmd> %WINDIR%\Microsoft.NET\Framework\v2.0.50727\msbuild.exe  file.sln

'msbuild.exe' can not upgrade Visual Studio project files, so you better use 'vcbuild.exe' (which
present in MSVC version 8.0/9.0)::

  cmd> cd %proj%
  cmd> %MSVC_ROOT%\VC\vcpackages\vcbuild.exe  file.sln
  cmd> %MSVC_ROOT%\VC\bin\amd64\vcbuild.exe  file.vcproj

  cmd> cd %proj%
  cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe  /Clean file.sln
  cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe  /Build file.sln
  cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe  /Deploy file.sln

  http://msdn.microsoft.com/en-us/library/ms164311.aspx
                MSBuild Command Line Reference
  http://msdn.microsoft.com/en-us/library/kdxzbw9t.aspx
                VCBUILD Command Line
  http://msdn.microsoft.com/en-us/library/xee0c8y7.aspx
                Devenv Command Line Switches

Check linking problem.
======================

Use '/verbose:lib' to see list of libraries for linking and thier order.

Buy MSVC.
=========

  http://msdn.microsoft.com/ru-ru/subscriptions/subscriptionschart.aspx
                Сравнение подписок MSDN