At some point, Debug stopped starting in the studio with the message:
The program cannot be started because the computer does not have
MSVCP140D.dll. Try reinstalling the program.
If you add the path
C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ redist \ debug_nonredist \ x86 \ Microsoft.VC140.DebugCRT to
PATH , then it starts normally. Previously, this was not required. What could have broken?
Tried creating a new empty console project, same situation.
Debug variant with a static runtime (as suggested in the comments by Duracell) runs fine as expected. But
Release works with both statically linked runtime and dll.
Answer 1, authority 100%
Summarizing the investigation and dialogue in the comments:
msvcp140d.dll library is part of Visual C++, it is debug version of the C++ runtime library and is installed when you install Visual Studio on your computer. They are usually found in
% WINDIR% \ System32 for 32-bit systems and
% WINDIR% \ SysWOW64 for 64-bit systems (for 32-bit programs). Since this is a more or less public place, the library can be unintentionally removed by some other application, which apparently happened.
The library version is in
& lt; Visual Studio directory & gt; \ VC \ redist \ debug_nonredist \ x86 \ Microsoft.VC140.DebugCRT and can be copied from there. But the best solution is to use the
repair option of the Visual Studio installer, which will deliver the missing files.
Note that the debug version of the
msvcp140d.dll library (unlike the release
msvcp140.dll ) is not part of the redistributable. Therefore, if you want to deploy components on a client machine that require a debug version of the runtime, it is best to either statically link or carry a copy of the files from
Microsoft.VC140.DebugCRT in the installation directory.
More information on MSDN: Preparing a Test Machine To Run a Debug Executable .