Allow NVDA compilation using MSVC 2015 #5592

michaelDCurran opened this Issue Dec 7, 2015 · 4 comments


None yet

3 participants


Currently NVDA can only be compiled with Microsoft Visual c++ 2012 update 3 or higher, or Microsoft Visual C++ 2013. We should support compiling with Microsoft Visual C++ 2015. This requires Scons 2.4.1 and multiple fixes to our source code as VC 2015 is much more pickier about casting truncation on 64 bit (specifically in regards to HWND and HANDLE).


Incubated in 5d76183.

jcsteh commented Dec 22, 2015

The current deployment plan for this is:

  • In early January, install VS 2015 on our build server.
  • Once VS 2015 is installed, force the VS version to 2015 so NVDA will refuse to build at all with earlier versions. This should be merged into next.
  • NVDA 2016.1 (and thus master until rc) will still be VS 2012.
  • Merge to master at the start of the 2016.2 release cycle (after 2016.1rc1).
@michaelDCurran michaelDCurran added this to the 2016.2 milestone Jan 5, 2016

Incubated in a74f6c2.

@nvaccessAuto nvaccessAuto assigned jcsteh and unassigned michaelDCurran Feb 5, 2016

Incubated in d287eef.

@nvaccessAuto nvaccessAuto removed the incubating label Mar 2, 2016
@jcsteh jcsteh added a commit that closed this issue Mar 2, 2016
@jcsteh jcsteh Switch to building with Visual Studio 2015. This is mandatory; no oth…
…er version will work.

* Upgrade to Scons 2.4.1 providing support for VC2015
* Ignore warning c4091: unnamed typedef enums (in Windows SDK 7.1a dbghelp.h).
* fix warnings c4302, c4311, and c4312 (trunkation or extending when casting from a 32 bit type to a 64 bit type or the other way around):
 * VBuf docHandles are now unsigned longs instead of ints.
 * Replace all explicit casts from unsigned long to handles (HANDLE, HWND) with UlongToHandle.
 * Replace all explicit casts from  handles (HANDLE, HWND) to unsigned long with HandleToUlong.
* MSHTML vbufBackend: fix syntax of string concatination with a define to be compatibal with VC2015. Strings can now have a suffix letter, thus two strings that should be joined must now contain a space between them.

Fixes #5592.
@jcsteh jcsteh closed this in 838973b Mar 2, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment