Microsoft Visual C 2019 2021
The "story" of Microsoft Visual C++ (MSVC) 2019–2021 is primarily about the transition from the "classic" development cycle to the modern era of and cross-platform compatibility. While 2019 and 2021 refer to specific versions of the Visual Studio IDE
(Integrated Development Environment), they share a common thread: binary compatibility 1. The 2019-2021 "Unified" Runtime
The most practical "story" for users is why you see "Visual C++ 2015-2019" or "2015-2022" in your programs list. Unlike older versions (2005, 2008, 2010), which were separate, Microsoft decided that all versions from 2015 onward would share the same Redistributable runtime The Good News:
This means you don't need a separate "2019" and "2021" installer; one modern package (v14x) covers everything released in that window. Why it matters: It prevents the "DLL Hell" of the past where a missing msvcp140.dll would break your favorite games or apps like OBS Studio Microsoft Learn 2. Visual Studio 2019: The Workhorse
Released in April 2019, this version became the industry standard for stability. C++20 Support:
By the end of its life cycle (version 16.11, released in late 2021), it added the /std:c++20 microsoft visual c 2019 2021
flag, finally allowing developers to use major new language features like Coroutines Free Access: It maintained the Community Edition
, allowing students and small teams to build professional software for free. Microsoft Learn 3. The 2021 Shift (Visual Studio 2022) In late 2021, Microsoft released Visual Studio 2022
. This was a "good story" for performance because it was the first version to be 64-bit (x64)
Microsoft follows a specific naming convention for these tools:
- Microsoft Visual C++ 2019 refers to the compiler toolset released with Visual Studio 2019.
- The successor, released in 2021, is named Microsoft Visual C++ 2022 (part of Visual Studio 2022).
Below is a write-up covering the Visual C++ 2019 toolset and its transition into the 2021/2022 era. The "story" of Microsoft Visual C++ (MSVC) 2019–2021
Abstract
This paper examines the Microsoft Visual C++ (MSVC) compiler toolchain as part of Visual Studio 2019 (released 2019) and its major updates through 2021. It focuses on standards conformance (C++17/20), security enhancements, build throughput improvements, and the introduction of the /std:c++latest mode. The study finds that between 2019 and 2021, MSVC achieved near-full support for C++17, substantial C++20 feature completion, and significant parallel compilation optimizations, while maintaining backward compatibility with legacy code.
3.3 Performance
/MP(multi-process compilation) improved for large solutions- Linker time reduction up to 15% for incremental builds
4.2 Toolchain Additions
/ZH:SHA_256– Use SHA-256 source code hashes in debug info (improves reproducible builds)/external:I– Treat includes from external directories as system headers (reduces warnings)/await:strict– Enforces standards-conforming coroutines (removes legacyawaitkeyword)- CMakePresets.json integration – Full MSVC support for CMake 3.20+ presets
Why this is a “good piece” for MSVC
- Uses Microsoft-specific secure functions (
localtime_s) – shows awareness of MSVC’s security enhancements. - Thread-safe – uses
std::mutexfor concurrent logging from multiple threads. - Modern C++ – smart pointers, RAII,
std::put_time,std::chrono. - Extensible – easy to add more log levels, sinks (e.g., debug output via
OutputDebugStringAfor Windows). - Practical – logging is essential in real applications.
If you want something more Windows-specific (e.g., using OutputDebugString, EventLog, or registry access), let me know.
Error 2: "VCRUNTIME140_1.dll is missing"
Notice the _1 at the end. This DLL was only introduced in the 2021 update (version 14.29). Older games don't need this. Newer games (like Halo Infinite or Forza Horizon 5) require it.
- Fix: You do not have the Microsoft Visual C++ 2019 2021 update. Download the "Latest Supported VC++ Redist" package (version 14.32 or higher) from Microsoft.
Why Do I Have So Many Versions? (2010, 2013, 2015, 2019, 2021...)
A common question from users who see Microsoft Visual C++ 2019 2021 alongside "2015" and "2017" is: Can I delete the old ones?
Absolutely not. Here is why:
Microsoft does not practice "backward compatibility" for C++ runtimes the way it does for standard Windows APIs.
- An app compiled with Visual Studio 2013 needs the 2013 runtime.
- An app compiled with Visual Studio 2017 needs the 2017 runtime.
- An app compiled with the 2021 update of VS 2019 needs the Microsoft Visual C++ 2019 2021 runtime.
They do not overwrite each other. They live side-by-side. Modern AAA games (like Call of Duty: Modern Warfare or Fortnite) often require multiple runtimes simultaneously. If you uninstall the "old" 2019 version, a game that specifically looks for the 2021 update will crash immediately.
Microsoft Visual C++ (2019–2021): Ecosystem, Runtimes, and Development
The period between 2019 and 2021 was pivotal for Microsoft’s C++ ecosystem. While the core compiler toolset is technically known as MSVC (Microsoft Visual C++), users most often encounter it through two distinct avenues: the Visual Studio IDE (for developers) and the Visual C++ Redistributable (for end-users).
This write-up clarifies the state of Visual C++ during this era, covering the release of Visual Studio 2019, the evolution of the compiler standards, and the ongoing necessity of the Redistributable packages.
Error 3: Installation Failed - "Another version of this product is already installed"
This is the most annoying error. Because Microsoft labels the 2021 update as a "new" product, Windows Installer sometimes gets confused. Microsoft Visual C++ 2019 refers to the compiler
- Fix:
- Download the Microsoft Program Install and Uninstall Troubleshooter.
- Run it and select "Installing" > "Visual C++ Redistributable."
- Manually uninstall every VC++ 2015-2022 entry.
- Run the
vc_redist.x64.exeinstaller as Administrator in Safe Mode (to bypass permission conflicts).