msvc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 19 Dec 2018 14:07:30 +0200
changeset 2307 08aa10b9c7ff
parent 2230 9e6ad6607a9e
permissions -rw-r--r--
Add timestamp to Vagrant log.

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

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

MSVC downloads
==============

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.

MS  SDK downloads
=================

https://www.microsoft.com/en-us/download/details.aspx?id=18950
   Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO). Latest
   that inlude offline Platform documentation.
https://www.microsoft.com/en-us/download/details.aspx?id=8442
  Microsoft Windows SDK for Windows 7 and .NET Framework 4 (latest that support
  Windows XP). ISO. Does not nclude documentation and require .Net 4.0.
http://msdn.microsoft.com/en-us/windows/bb980924.aspx
  Microsoft Windows SDK for Windows 7 and .NET Framework 4 (latest that support
  Windows XP). Web installer. Does not nclude documentation and require .Net 4.0.
https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
  Windows SDK and emulator archive.

MS SDK versions
===============

===================================================== =====
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
===================================================== =====

https://en.wikipedia.org/wiki/Microsoft_Windows_SDK#Versions
  Microsoft Windows SDK Versions
https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
  Windows SDK and emulator archive.
http://web.archive.org/web/20100806195053/http://msdn.microsoft.com/en-us/windows/dd146047.aspx
  Which SDK do I install?

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://bytepointer.com/msvc/index.htm
  Microsoft Visual C++ Unofficial Changelists
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

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

======= =================================
SDK ver MSVC releases
======= =================================
   6.1  MSVC 2005, 2008 + express
   7.0  MSVC 2008 + express
   7.1  MSVC 2005, 2008, 2010 + express
======= =================================

Legacy VS 6.0
=============

Processor pack is compatable with SP5 and incompatible with SP6. It adds support
for SSE/SSE2 instruction set.

http://wayback.archive.org/web/20100923113933/http://msdn.microsoft.com/en-us/vstudio/aa718349.aspx
  Visual C++ 6.0 Processor Pack (for SP5).
http://stackoverflow.com/questions/2105322/visual-studio-6-processor-pack-enabling-sse2
  Visual Studio 6 Processor Pack Enabling SSE2
http://bytepointer.com/masm/vcpp5_readme.htm
  Microsoft Visual C++ Processor Pack Release Readme
http://bytepointer.com/download.php?name=vc6pp5_procpack.chm
  Docs.
http://stackoverflow.com/questions/3991043/how-to-install-vs6-sp5-and-proc-pack-on-windows-7
  How to install VS6, SP5, and Proc Pack on Windows 7?
http://stackoverflow.com/questions/186207/visual-studio-6-processor-pack-compatibility
  Visual Studio 6 Processor Pack compatibility

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